Skip to main content

Full text of "Load MSX (AR)"

See other formats


ANO 1 N° 2 * 2.00 REP. ARGENTINA 


PROGRAMACION 


PODEROSOS 
ARCHIVOS Ú 


HtVlhlA fñHA UWAHIUS Ot 


EL SISTEMA 


OPERATIVO DE 


EL MODEM 




























Ya funciona en su nueva dirección: Cabildo 2027 - 1° piso Capital 


Invitamos a los felices usuarios de 
la TALENT MSX al curso gratuito 
de introducción al fabuloso mundo 
de MSX. 

Participe del Cluo de Usuarios 
de MSX y encuéntrese con sus 
amigos que también tienen la 
TALENT MSX, e intercambiará 
programas, datos y chimentos. 


Podrá probar todos los accesorios 
de la línea MSX, ¡¡desde disketteras 
hasta robots!! 

Podrá ver y leer todo lo que le interese 
sobre la norma MSX: catálogos, 
libros y revistas de todo el mundo. 
Todo con la seguridad, respaldo 
y seriedad que sólo TALENT puede 
brindarle. 


¡Para inscribirse, no olvide traer su factura de compra! 

ClubTalent 

MSX es marca registrada de MICROSOFT CORPORATION. 




tífl 


% 


dialogo - D. P. 



Staf 

f 1 

9 

AÑO 1 N° 2 


Load 





Director General 

Ernesto del Castillo 

Director Editorial 

Cristian Pusso 

Director Periodístico 

Fernando Flores 

Director Financiero 

Javier Campos Malbrán 

Arte y Diagramación 

Fernando Amengual 
Tamara Migelson 

Coordinador 

Ariel Testori 

Redacción 

Eduardo Mombello 
Andrea Sabin Paz 

Departamento de Avisos 

Oscar Devoto 

Departamento de 

Publicidad 

Guillermo González Aldalur 

Departamento fotográfico 


Víctor Grubicy 


Load Revista para usuarios de MSX es 
una publicación mensual editada por 
Editorial PROEDI S.A., Paraná 720. 5 o 
Piso. (1017) Buenos Aires. Tel.: 46-2886 
. 49-7130. Registro Nacional de la Pro- 
piedad Intelectual: E.T. M. Registrada. 
Queda hecho el depósito que indica la 
Lev 11.723 de Propiedad Intelectual. 
Todos los derechos reservados. 

Precio de este ejemplar: A 2 

— c'esión: Calcotam. Fotocromo tapa: 
Ce -mbia. Fotocomposición: Van Wa- 
ve¡ren 

Les t emplares atrasados se venderán 
= precio del último número en circula- 
ción. 

z 23 la reproducción total o par- 
: i :í los materiales publicados, por 
! *-2 er medio de reproducción gráfi- 
:: i-é tivo o mecánico, sin autoriza- 
: e x--esa de los editores. Las men- 

: i-rsze -modelo, marcas y especifica - 
:*e= £ r 'eaiízan con fines informati- 
za • 'rzvccs sin cargo alguno para 
: :z íi t — cresas que los comerciali- 
:=■ • : : = 'f presentan. Al ser informa- 
z ~ í = 'evista no se respon- 

:iz z»z ' : -siquier problema que 
z . f : - z ¿ = ‘abricación, el fun- 

: — tmz . z a aplicación de los 

áslHHsy los «Supositivos descriptos . 
La responsabilidad de los artículos fir- 

— z z z z z z - z 50Z " z e exclusivamente a 
sus autores 

D S 2 T 2 - zzr e r Capital Martino, Juan 
ze Garav 358 P.B Capital. 

Dcstribu de' rrterior DGP Hipólito Yri- 
gz.en *450. Capital Federal. T.E. 38- 
9266 9800 




umario 


• Brazo robot 
RBS-1 



para computadoras MSX 
(pág. 5). 

• Todo el poder 
de los archivos 

Si hay algo que realmente 
jerarquiza al sistema MSX 
es su capacidad de almace- 
namiento de datos. Y por 
supuesto, si trabajamos so- 
bre una unidad de discos, 
nada más distinguido que el 
DOS. No sólo nos permite el 
diálogo con el resto de las 
marcas MSX sino con una 
parienta más antigua: la 
IBM PC (pág. 6). 

• El sistema 
operativo de la 
disketera ~ 

Continuamos viendo cada 
uno de los comandos que 
hacen del MSX-DOS una 
herramienta de gran poten- 
cia (pág. 10). 


Informática 

educativa 


Hoy muchos se plantean la incorporación de las 
computadoras en los institutos educativos argen- 
tinos. El tema da lugar a distintos criterios, aun- 
que hay coincidencia acerca de que transitamos 
una etapa experimental. Hay quienes están tra- 
bajando seriamente en este campo, como el Cen- 
tro para el Desarrollo de la inteligencia, que utili- 
za los equipos Talent MSX para difundir los múlti- 
ples usos del computador. Pero quizá lo más im- 
portante es que capacita y perfecciona al docen- 
te, y apunta a que el profesional domine el uso de 
nuevas herramientas. Porque no se puede tratar 
esta cuestión solamente en términos de hardwa- 
re. El equipamiento puede resultar inútil si maes- 
tros y profesores no saben cómo aplicar la má- 
quina y los programas. 

Por eso resulta tan importante el esfuerzo que es- 
tá realizando la empresa Telemática para que la 
introducción de las tecnologías sea acompañada 
por una inteligente formación de los educadores. 

LOS EDITORES _ 




Nuevamente la empresa Telemática nos sorprende con 
un importante desarrollo: el Modem TMX-510. Vere- 
mos algunas de las características de este nuevo pro- 
ducto (pág. 14). 


• Programación 
aplicada 

Muchas veces pensamos 
en la forma de acercar los 
conocimientos del Basic a 
los lectores que recién co- 
mienzan en esta materia y 
llegamos a la conclusión de 
que la mejor forma de apren- 
derlo es programándolo a 
medida que lo necesitamos 
(pág. 16). 


• Programas 

Jugando en tres dimensio- 
nes (pág. 12) - Europa (pág. 
18) - Agenda (pág. 23) - Di- 
señador de pantallas (pág. 
24) - Ladri (pág. 30). 


• Secciones fijas 

Noticias (pág. 4) - Trucos 
(pág. 16) - Club de Usuarios 
(pág. 22) - Raiting Soft (pág. 
32) - Crítica de Libros (pág. 
34) - Mailing (pág. 34). 



RED NACIONAL 
DE INFORMATICA 


DEPO R T IVA 


EL KEY-PAD DE TALENT 


|f 


uevamente TELEMATICA sor- 
prende con un nuevo desarrollo 
para la Talent MSX. 

Se trata ahora de un teclado nu- 
mérico con los diez dígitos decimales y una 
tecla de ENTER. Está diseñadoparaser co- 
nectado como un joystick a uno de los pór- 
ticos que la Talent MSX posee para ese 
fin. 

Pero el Key-pad no viene solo, demostran- 
do otra vez la seriedad y capacidad que ca- 
racteriza a esta empresa. 


; Ha desarrollado un soft de apoyo, que al- 
macenado en disco, permite que el teclado 
sea leído en todo momento. De esta forma 
nuestra DPC-200 reconocerá (una vez car- 
gado este programa) a los números pulsa- 
dos en el key-pad de la misma forma que 
reconoce a los números que incluye el te- 
clado original. 

De más está mencionar las utilidades de 
este aparato, pero seguramente, una vez 
que lo hayan adquirido, se olvidarán de la 
primer fila de* teclado de la DPC-200. 


Talent am tnx.íio 

7 I 8 1 

9 

DEL 

(Ai 5 

6* 

— 

V 1 2-j 

í 34 

E 

0 

v 

H 

N 

I 

R 

L. 

TNX 

-410 CS3 


Durante una reunión que se llevó a cabo en el 
Ministerio de Salud y Acción Social — Secre- 
taría de Deportes — , la empresa Telemática, a 
través de su gerente de ventas Juan C. Zahre- 
belnyj, hizo entrega al Secretario de Deportes 
Rodolfo O'Reilly y al Subsecretario del área 
Osvaldo Otero, un equipo completo de compu- 
tación marca TALENT MSX. Lo hizo en calidad 
de colaboración para el inicio de las tareas de 
exploración con vistas a una Red Nacional de 
Informática Deportiva que en un futuro próximo 
abarcará todo el territorio de la República. 

E! equipo está compuesto poruña computadora, 
una pantalla (T.V. color 14"), un drive de disque- 
tes DPF 550; una caja de disquetes de 5 1/4” y 
un modem para teléfono. 

La Red Informática Deportiva será instrumen- 
tada por la Secretaría de Deportes a través de la 
Dirección Nacional de Promoción del Deporte y 
la Recreación. El área de Deporte no sólo está 
interesada en la modernización de los sistemas 
de archivos y detección de recursos de infra- 
estructura, físicos y humanos relacionados con 
el deporte sino que tratará a través de la Red 
Nacional de brindar a todo el país un modelo de 
sistema educativo-deportivo para niños y ado- 
lescentes. Los equipos terminales ubicados en 
todas las capitales provinciales permitirán trans- 
mitir y recibir información vital para este pro- 
pósito. 


Compu Prando 


Av. de Mayo 965 - 1084 - Bs. As. 
Tel.: 38-0295 


CONOZCA LA 


DIFERENCIA. 


Talent 


En el número anterior comentamos una de las novedades 
de TALENT en materia educativa: la RED LOCAL EDU- 
CACIONAL MINI-LAN. 

Ahora incluimos algunas modificaciones. 

Estas son: 1) Velocidad de comunicaciones: 30.000 bits/ 
segundo. 

2) Costo adicional por estación alumno: 

A 100.- 

3) Costo adicional por estación maestra: 

A 150- 


HARDWARE 

-EQUIPOS 

.PERIFERICOS 

-ACCESORIOS 


SOFTWARE 

-UTILITARIOS 

-LENGUAJES 

-GESTION 

.EDUCACION 

-JUEGOS 


CURSOS 

LIBROS 








BRAZO ROBOT RBS-1 PARA 
C O MPUT ADORAS MSX 



a robótica está surgiendo co- 
mo una de las ¡deas claves 
para aplicar las nuevas tecno- 
logías de fabricación de la dé- 
: 5 z = presente. Es una tecnología mul- 
t d sciplinaria que abarca los últimos 
av anees en la tecnología de control por 
mi crocomputadoras, programación, 
~sica e ingeniería electrónica, mecáni- 
ca y eléctrica. La integración de estas 
disciplinas permite la generación de un 
renacimiento en la tecnología de fa- 
bricación. 

Las mejoras en la productividad me- 
cíante la automatización de las fábri- 
cas, manufacturas computarizadas in- 
tegradas, y la mayor posibilidad de tra- 
bajar en medios hostiles son sólo la 
punta del iceberg". 


Presentamos el brazo 
robot MSX RBS-I 


El sistema RBS-I permite acceder a un 
bajo costo a un sistema robótico muy 
útil para ingenieros, maestros, es- 
tudiantes técnicos para aprender y ex- 
perimentar con robots. 

Se puede manejar con cualquier com- 
putador MSX y ayuda a convertirse en 
uno de los innovadores del mañana en 
robótica, automatización y control de 
movimiento. 

Producido por BaireSoft y Prosoft, el 
diseño, la construcción y el software: 
estuvo a cargo de Emilio D. Graffigna, 
Roberto N. Tokuda y, Hugo D. Caro 


En educación 

Dado que RBS-I se conecta directa- 
mente a impresora, las amplias facili- 
cades de MSX permiten controlarlo 
-oc todos los lenguajes disponibles 
C estas máquinas, como ser MSX- 
5-SIC MSX-LOGO, FORTRAN, LISP, 

- I RTH etc. Une a la experimentación 
— eca-ica" la introducción al mundo 
cea n^eügencia artificial, con progra- 
mas :.e: ^eden resolver problemas de 
ta^x . movimiento con "Sentido Co- 
mún 

~5 r = crofesores que deseen de- 
sarme ar un currículum sobre re- 
caracícr • aceración de robots, RBS-I 
es -na excelente herramienta. 

Decido a su bajo costo, RBS-I puede 
nacer sentir su presencia y enriquecer 
¡as ciases de computación de escuelas 


primarias, secundarias y universida- 
des. 


En la industria 

Los ingenieros que deseen diseñar sis- 
temas automatizados encontrarán en 
el RBS-I una herramienta de prueba y 
verificación muy útil. 

La verificación y armado de sistemas 
multi-brazo, la llamada "coreografía" 
de producción, y las consideraciones 
de programación se pueden probar, 
contruír modelos, modificar y verificar 
con RBS-I, a un costo realmente bajo 
en comparación con sistemas de ma- 
yor envergadura. 


Descripción del producto 

El sistema completo RBS-I para MSX 
consta de: 

• El brazo robot, construido en ma-^ 
teriales resistentes, de gran duración y 
versatilidad y totalmente autoconte- 
nido. 

• Cable de conexión, que se coloca 
directamente a la salida de impreso- 
ra. 

• Un cassette de programa, que per- 
mite la programación desde MSX- BA- 
SIC de secuencias y posiciones. 

• Un manual teórico y de uso. 


Especificaciones 

Configuración: 4 grados de libertad, 
movimientos: brazo, antebrazo, giro 
torre y abrir/cerrar pinzas. 

Motores: 

4 servomotores Futaba SI 28, 3 
Kg/cm. 

Rango de movimientos: 

Torre: +/— 180 grados 
Antebrazo: +/— 45 grados 
Brazo: +/- 90 grados 
Pinza: 0 a 4,5 cm. 

Capacidad de carga: 250/300 

gramos 

Velocidad: 0.24 seg/60 grados 

Electrónica general: 

Fuente: 6 V regulada/transformador 
220 V/50 Hz 

Rango de temperaturas: 0 a 45 °C 

Dimensiones: 

Altura máxima: 35 cm 
Ancho: 7 cm 
Largo base: 1 1 cm 

El RBS-I —distribuido por Prosoft— es- 
tará próximamente a disposición del 
público quien podrá adquirirlo direc- 
tamente en la red de Telemática, fabri- 
cantes de la computadora Talent MSX. 
Cabe destacar que es un desarrollo ín- 
tegramente argentino, con el mínimo 
material importado, empleando losde 
mejor calidad para ser coherentes con 
la filosofía del producto: "bajo costo y 
elevado standard de calidad". 



TODO EL PODER 
DE LOS ARCHIVOS 

Si hay algo que realmente jerarquiza al 
sistema MSX es su capacidad de alma- 
cenamiento de datos. Y por supuesto, si 
trabajamos sobre una unidad de discos, 
nada más distinguido que el DOS. Que 
nos permite el diálogo con el resto de las 
marcas MSX y con la IBM PC. 


eguramente aunque sea muy 
vaga, tenemos una idea de lo 
que significan un archivo se- 
cuencial y uno aleatorio. 
Repasemos. El primero se caracteriza 
porque la forma de acceso a él es es- 
trictamente ordenada y ascendente. 
Esto es: se leen o escriben los regis- 
tros, uno detrás del otro sin poder ac- 
ceder a uno lejano, sin "pasar" por 
los anteriores. 

Esta es la idea básica que rige a este 
tipo de archivos. 

Los llamados archivos aleatorios se 
distinguen por permitir el acceso a 
cualquiera de sus registros, simple- 
mente invocando su número. 

Así podremos acceder a cualquiera de 
los registros de un archivo sin tener 
que leer los anteriores. 

Cuando los que saben crean un archi- 
vo, lo hacen con alguna de estas dos 
características. Es decir que si graban 
uno en forma secuencial es porque así 
han de leerlo luego, lo que no quiere 
decir que su archivo no puede ser leído 
o tratado como uno aleatorio. 
Pongamos algo de luz en este asunto. 
Un archivo es un archivo, ¿está claro? 
Esto quiere decir que cualquier cosa 
que se encuentre en el directorio de 
nuestro diskette es un conjunto de nú- 
meros y puede ser leído como tal, sin 
importar si es un programa BASIC, 
Assembler, el mismísimo MSX-DOS o 
simplemente datos. 

De esta forma podremos tomar tanto 
como un archivo secuencial o como 
uno aleatorio a cualquier paquete de 
números que esté en el disco y tenga, 
por supuesto, algún nombre. 

Con eso nos sobra para considerarlo 
un archivo. 

Lo que cambiará en cada caso será el 
significado que dicha lista de datos 
tenga. 


Seguramente si queremos interpretar 
como texto a un archivo que corres- 
ponde a un listado Assembler, el resul- 
tado será la incoherencia más grande 
del mundo, en la mayor parte del texto 
que de allí se produzca. 

Pero nos tiene que quedar en claro, que 


con la diskettera debajo de un brazo y 
el MSX-DOS debajo del otro, podre- 
mos descuartizar cualquier cosa que 
se encuentre en un disco en cuyo terre- 
no gobierne un DOS más o menos de- 
cente. 

Podríamos profundizar en cada uno de 
los temas de la forma más teórica ha- 
ciendo una exposición magnífica, o 
también tratar el asunto de la forma 
más empírica, pero de ninguna de las 
dos formas obtendríamos el resultado 
esperado: que lo entendamos todos. 

Así que vamos a experimentar en cada 
una de las formas de manejo de archi- 
vos conocidas, de forma tal de llegar a 
algo concreto: la mayor aproximación 
posible de la comprensión. 

El trabajo secuencial 

Para empaparnos de esta clase de tra- 
bajo hemos creado un pequeño pro- 
grama que se muestra en la figura 1 , y 
sobre el cual basaremos nuestro pre- 
tencioso estudio. 

Antes que nada deberemos copiarlo tal 
cual se encuentra en esa figura y gra- 
barlo con el nombre que sugerimos y 
de la siguiente forma: SAVE"SECUEN 
1.ASC",A. 




De esta forma el programa quedará 
grabado en su forma ASCII. Que no es 
más que grabar el código ASC 1 1 de ca- 
da carácter que compone al listado in- 
cluyendo la tecla de RETURN o ENTER 
que aparentemente no figura en él; es 
decir, no produce ningún carácter vi- 
sible. 

Recomendamos que antes de copiar el 
listado se entre la instrucción sin nú- 
mero de línea; SIDTH 32, a los efectos 
de copiarlo sin errores ni modificacio- 
nes, pues hasta la longitud de los REMs 
tiene que ser la adecuada para que 
nos entendamos. 

Por el momento nuestro objetivo se li- 
mita a tratar de crear un archivo numé- 
rico cualquiera y leerlo. 

Entonces analicemos línea por línea lo 
que SECUEN1.ASC hará. 

Le pusimos .ASC para diferenciarlo de 
ios demás programas que están segu- 
ramente grabados en forma comprimi- 
da por medio de tokens (números que 
simbolizan instrucciones BASIC). 

En la línea 1 0 limpiamos la pantalla y la 
preparamos para trabajar a su máxima 
capacidad: 40 columnas. 

Esto nos permitirá, en el momento de 
ejecutar la instrucción FILES, tener 
éste listado en tres columnas. 

En los REMs de las líneas 20 y 30, el 


carácter pleno que allí figura es el que 
corresponde al de pulsar GRAPH P en 
la DPC-200, más conocida porTALENT 
MSX. 

Debemos entonces crear un archivo 
secuencial que nos permita escribir 
datos numéricos en nuestro disco. 
Luego, en la línea 50 usamos la ins- 
trucción OPEN que abre un archivo 
seguido del nombre. Le indicamos al 
poner luego del FOR, que éste es de 
"salida" de datos por medio del OUT- 
PUT y que es secuencial. 

Pues, de no poner el FOR OUTPUT o 
INPUT la maquinóla asume que tra- 
bajaremos en forma aleatoria. 

Luego le indicamos que éste será el 
archivo número 1 gracias al AS# 1 . Es- 
ta cantidad (uno) es la única que nos 
permite tener sin usar una instrucción 
apropiada (MAXFILES) para aclarar 
que usaremos mayor cantidad de ar- 
chivos al mismo tiempo. 

Para escribir entonces, 100 números 
cualquiera bajo el nombre de AMA- 
DEVS, se usa el bloque de las líneas 
50, 60 y 70. 

Por medio de la línea 60 se grabarán 
números generados al "azar" entre 1 
y 100. 

Y en la línea 70, luego de terminar el 
bucle se cierra el archivo 1 por medio 
de la instrucción CLOSE #1. Avisán- 


donos de ésto en la línea 80 y mos- 
trándonos cómo quedó el directorio de 
nuestro disco. 

Hasta aquí todo está muy lindo. Vea- 
mos entonces como quedó ésto gra- 
bado en el diskette. 

En la línea 100 volvemos a habilitar el 
archivo AMAD E VS pero esta vez como 
"entrada" de datos, difiriendo del an- 
terior OPEN sólo en el comando FOR 
INPUT. 

En la siguiente línea limpiamos la pan- 
talla y creamos una variable (X) que 
nos ayudará a recordar el número de 
registro que estemos leyendo. 

La línea 130 es la encargada de avisar- 
nos y dar por terminada nuestra incur- 
sión en el disco si es que se ha termi- 
nado el archivo. Esto se logra graciada 
la instrucción EOF (End Of File) que so- 
lamente requiere como parámetro al 
número del archivo que queremos que 
nos informe si terminó. 

Así, si lo anterior no ocurre podemos 
leer un registro valiéndonos de la ins- 
trucción de la línea 140 que pondrá el 
valor numérico que encuentre en la va- 
riable A. Notemos, que si el valor bus- 
cado es numérico, no es por otro mo- 
tivo que el de haber elegido una varia- 
ble de estas características para acom- 
pañar al INPUT #1. 

Hagamos pues correr este programa. 


MSX 

LA NORMA INTERNACIONAL 
EN MICROCOMPUTACION 



CONTADO A 495 

PLANES DE FINANCIACION 


APLICACIONES PARA: 

•LA EMPRESA 

• EL HOGAR 
• EL PROFESIONAL 

•LA ESCUELA 
•JUEGOS 


MINICOMP ui 

ADEMAS DISPONEMOS DE: 

MAIPU 862 (2000) ROSARIO 

•INSTITUTO DE ENSEÑANZA PROPIO 

Te: (041) 64*447 

• LABORATORIO TECNICO PROPIO 

63*091 y 21-1266 

/ 

•ASESORAMIENTO A ESCUELAS 




Luego de escuchar por unos segundos 
el motor Mercedes de nuestro drive, 
veremos el mensaje que nos anuncia 
que ha terminado de grabar. Ahora sí 
podemos pulsar alguna tecla y ver que 
en cada uno de los 1 00 registros pode- 
mos leer los números tal cual fueron 
grabados. 

Así que podemos usar esto en nues- 
tros programas. Lo que no sabemos 
hasta el momento, es cuantos bytes en 
disco hemos ocupado con AMADEVS. 
Comencemos pues a hacer las cosas 
prohibidas. En primer lugar cambie- 
mos el nombre del archivo a leer de la 
línea 100 (AMADEVS) por el de SE- 
CUEN1.ASC. 

Corramos a partir de la línea 1 00 esta 
nueva estructura, con GOTO 100. 

Al referirnos a nuestro propios progra- 
ma como un archivo secuencial, del 

Figura 1 


SE ALGUNA TECLA (CPAT3) 

90 IF INKEY*="" THEN 90 
100 OREN "AMADEVS" FOR INPUT AS# 
1 

110 CLS¡ X=0 
120 X=X+1 

130 IF EOF ( 1 ) THEN PRINT "SE TER 
MINO EL ARCHIVO. " : CL0SE#1 : END 
140 INPUT #1,A 

150 PRINT "El registro n°";X;"co 
njt i enes " ; A 

160 IF INKEY*="" THEN 160 
170 GOTO 120 


Figura 2 


BYTES: " ; LOF ( 1 ) 

70 GET #1 

SO IF ASC ( A$) <48 THEN PRINT "REG 
ISTRO N° " ; LOC ( 1 ) ; "=" ; ASC ( A$) : GOTO 
100 

90 PRINT "REGISTRO N° " ; LOC ( 1 > ; "= 
"5 A* 

100 IF LOC ( 1 ) =L0F ( 1 ) THEN CLOSEs 
STOP 

110 IF INKEY*="" THEN 110 
120 GOTO 70 


10 CLSsWIDTH 40 


20 
ORI O 


mi 

* 


RABA JO CON ARCHIVO ALEAT 


L 


EN UNIDAD DE DISCOS DPF- 


30 
550 . 

40 OPEN " AMADEVS " AS#1 LEN=1 
50 FIELD #1,1 AS A$ 

60 PRINT "TAMAFSO DEL ARCHIVO EN 


CLi 


10 
20 ’l 
NCIAI 


>: WIDTH 40 
■TRABAJO CON 


ARCHIVO SECUE 


I: 


EN UNIDAD DE DISCOS DPF- 
" AMADEVS" FOR OUTPUT AS# 


30 

550." 

40 QPF 
1 

50 FOR F=1 TO 100 

60 PRINT #1, I NT ( RND ( 1 ) * 1 00 ) 

70 NEXT FsCLOSE #1 

80 FILES: PRINT: PRINT "YA HE GRAB 

ADO 100 NUMEROS EN SU DISCO. PUL 


Pero como las líneas 60 y 140, contie- 
nen como parte de sus instrucciones al 
carácter ésto hace (por ser un de- 
limitador de registros válido cuando se 
usa la instrucción INPUT# para lec- 
tura) que estas dos líneas ocupen dos 
registros cada una. 

Volviendo a nuestro archivo original 
(AMADEVS), se presenta la inquietud 
de ver que es realmente, byte por byte, 
lo que quedó en el disco, y como es que 
guarda un valor numérico cuando es 
entrado por medio de un simple PRINT 
#. 

Para esto necesitamos alguna instruc- 
ción que nos permita desmenuzar ade- 
cuadamente un arreglo de esta natu- 
raleza. 

Y esto se puede hacer cómodamente 
usando una forma de lectura aleatoria. 
Así que... 


que queremos leer simplemente valo- 
res numéricos, lo que aparecerá acom- 
pañando a cada registro será precisa- 
mente un carácter cuyo código ASCII 
tiene representación numérica. 

En otras palabras, son todos los nu- 
meritos que se encuentran en nuestro 
listado Basic. Así podremos ver todos 
los números de línea de nuestro listado 
y los valores numéricos que en dichas 
líneas se encuentren. 

Para ver otro efecto interesante, cam- 
biemos además, en las líneas 140 y 
150, la variable A por A$. 

Corramos nuevamente el programa con 
GOTO 100, y veremos que los regis- 
tros ahora contienen a las líneas de 
nuestro programa original. Entonces 
tendríamos que obtener de este tipo de 
lectura 17 registros, correspondien- 
tes a cada una de las líneas de nues- 
tro SECUEN1. 


El trabajo aleatorio 

Copiemos el programa de la figura 2. 
En primer lugar el OPEN de la línea 40 
carece de especificación de modo, así 
que, como decíamos antes, la compu- 
tadora asume que trabajaremos con 
instrucciones de acceso aleatorio. 

En esa misma línea se especifica que 
cada registro leído constará de un solo 
byte (LEN=1). 

La siguiente línea se encarga de crear 
un campo o espacio de 1 byte llamado» 
A$ dentro del buffer o espacio de me- 
moria reservado para la comunicación 
entre la máquina y el drive. 

En la línea 60, el comando LOF (Len Of 
File) nos da la longitud del archivo que 
figura en el número 1 , en bytes. 

Y ya por medio del GET #1 (línea 70), 
pasa el primer carácter del archivo a 
ese espacio (A$) que reservamos en 
el buffer. 


Por medio de las siguientes dos líneas, 
diferenciamos los valores que en ASCII 
representan números de los que no, fi- 
jándonos si ellos sor? menores que 48 
(valor ASCII que representa al 0) e im- 
primimos los valores que tengan signi- 
ficado numérico como tales y los que 
no, tal cual figuran en el disco. 

La instrucción LOC (LOCates) que se 
usa en estas líneas, nos da el número 
de registro que estamos leyendo. 
Como seguramente hemos notado, 
usando este tipo de lectura un registro 
puede tener la longitud que a nosotros 
nos sea más conveniente, esto es: no 
existen delimitadores más que el fin 
del archivo mismo. 

La línea 100 es la encargada de verifi- 
car cuando se termina la lista de datos 
que estamos leyendo y así dar por con- 
cluida la ejecución del programa. 

Al correr (RUN) entonces a ALE AT0R1, 
veremos que el archivo consta de 593 
bytes y no de 1 00 como era de esperar. 
Si vemos detenidamente, el primer re- 
gistro es el carácter 32 que correspon- 
de al espacio, el segundo y el tercero 
corresponden al número 59, el cuarto a 
un espacio, el quinto al carácter 1 3 que 
es el token de RETURN o ENTER y el 
sexto al 10 que significa LINE FEED, 
que como carácter de impresora pro- 
voca que se deje un renglón en blanco 
antes de imprimir la siguiente línea. 

Y esto se repite para cada número, así 
que para grabar cada uno de estos se 
utilizan 6 bytes en el disco. 

Por supuesto sería mucho más econó- 
mico, en cuanto al espacio utilizado, 
que cada número entero no mayor de 
255, ocupará un byte, así el archivo se- 
ría seis veces menor. 

Pero desgraciadamente, esto no es po- 
sible si utilizamos un diálogo secuen- 
cial para grabar este tipo de datos. 
Por último veamos que es lo que ocu- 
rre cuando cambiamos en la línea 40, 
el nombre AMADEVS por el de ALEA- 
TOR1.ASC. 

Borremos también la línea 80 y vea- 
mos qué pasa al correrlo. 

Bueno, a esta altura el resultado de 
stop ya es casi predecible por todos, 
pero es bueno que experimentemos 
con estas cosas, para familiarizarnos 
con las instrucciones básicas que co- 
mandan a estos dos modos de trabajo 
con archivos. 

Probemos entonces, cambiar por ejem- 
plo, la longitud de los registros, el cam- 
po reservado para su lectura y escritu- 
ra en el buffer o agregar otra variable 
para lectura, por supuesto refiriéndo- 
nos a ALEATOR1. 

En fin, hagamos todos los cambios que 
seamos capaces de hacer, y experi- 
mentemos, que es una de las mejores 
formas de aprender, o por lo menos de 
adquirir confianza en este tema. 


Pág. 8 





•.HJÉ4SOS- 
jmtTARtDd 


□a>üi*£iui£í^d¡ 


•AJAHEIEA 


o 


J?F1 


WrJLTOGfUÜHA 


co TtuosimÑtfs, 


AiTO 


Oi^J’FRTFESTO 


VES) 


DISTRIBUIDORES OFICIALES SPECTRAVIDÉO 

Talent asm SVI 


HARDWARE 


AV. PUEYRREDON 1135 (1118) TeL: 821-5578 




urr-Dou 


EL SISTEMA 
OPERATIVO 

Continuamos viendo cada uno de los 
comandos que hacen del MSX-DOS 
una herramienta de gran potencia. 



INEINPUT#: Esta instruc- 
ción funciona en forma muy 

P similar al 1 N PUT# . De hecho, 

se la utiliza para leer un regis- 
tro de 254 bytes o caracteres, de un 
archivo abierto para uso secuencial. 


Su diferencia real radica en la forma en 

Í ue esta instrucción nos permite leer 
icho registro. Pues, el único delimita- 
dor reconocido por ésta es el llamado 
retorno de carro, más conocido como 
ENTER. Así esta instrucción leerá un 
registro (cuya máxima longitud puede 
ser de 254 caracteres) hasta que en- 
cuentre el token o byte que representa 
al ENTER, o bien finalice su capacidad. 


Los parámetros que obligadamente 
deben acompañar a ésta son: en pri- 
mer lugar un número que ha de coinci- 
dir con el del archivo abierto para este 
fin y en segundo lugar una variable al- 
fanumérica cualquiera en donde se de- 
positará lo que se haya leído del drive. 


Un ejemplo, entonces, tendría la si- 
guiente forma: 

UNE INPUT# 1 ,MARITO$ 

Si recordamos aquello que seguramen- 
te leimos en el manual de la máquina, 
que hablaba sobre las dos formas sim- 
ples y posibles de grabar un programa 
basic, entenderemos la aplicación que 
sigue. 

Por las dudas, recordemos que un pro- 
grama puede ser grabado tanto en la 
forma en que la computadora lo alma- 
cena en memoria (forma que usamos 
comunmente, CSAVE) como en su re- 
presentación ASC 1 1 . Esto .es posible en 
cassette gracias a la instrucción SAVE 
(en su momento veremos como se ha- 
ce ésto desde los comandos del DOS). 
De esta forma al grabar, tanto en disco 
como en cassette, un programa BASIC 
en su formato ASCII, cada línea o re- 
gistro terminará con el carácter corres- 
pondiente al RETURN o ENTER. 

Y esto nos permite pues leer un pro- 


FIGl 

10 UHEN "TIEMPO -DAT" AS#1 
20 FIELO #1,10 AS A* 

30 FOR F=1 TO 100 
40 INPUT G 
50 LSET A*=MKI*(G) 

60 PUT #1 , F 
70 NEXT F 
90 CLOSE #1 

Fo i^m i t ai . ASC 

ÍO KEY OFF : CLEAR 600 

20 CLSs FILES: PRINTs PRINTs PRINTs 

PRINT 

30 PRINT"Recordá que el program 
a debe estar grabado como < 

NOMBRE .ASC> . " : PRINTs PRINT: PRINT 
40 MAXFILES=3:E*=CHR*<27> :DS=E* 
+"G" s G*=E$+ " E " : GRAN$=CHR* ( 1 4 ) : CH 
ICO*=CHR* (15): NGRAN*=CHR* (20) : NC 
HIC0S=CHR*(18) 


50 LPRINT NCHICO*;NGRAN*;E$; "H" 

. E *. . CHR * ( 13) + CHR * ( 10) . E *. « A ,. 

; CHR$ (11); E$; "2" 

60 LINE INPUT "Entre el nombre 
del programa a listar y el dis 
ro aue lo contiene: ";A$ 

70 IF A*=“" THEN RUN 
80 LPRINT D$+G*+GRAN*+A*;NGRAN$ 
+CHRS (13) +CHR* (10) +CHR* (10): A$=A 
*+" -ASC" 

90 OPEN A* FOR INPUT AS#1 

100 IF EOF ( 1 ) THEN CLOSE #l:GOT 

O 160 

110 LINE INPUT# 1 , A$ 

120 FOR F=1 TO LEN(AS) 

130 X=F/30:IF X-INT(X)=0 THEN L 
PRINT CHR*(13) 

140 LPRINT MID*(A*,F, 1) ; 

150 NEXT F: LPRINT CHR$ (13) +CHR* 
(10);: GOTO 100 

160 LPRINT NCHIC0*;N6RAN*;ES; "H 
";E*; "F" 


grama de esta naturaleza como si fue- 
ra un archivo secuencial, en el que 
cada registro correspondería a una lí- 
nea BASIC. ¿Para qué nos puede ser- 
vir esto? 

Bien, una de las aplicaciones que se le 
puede dar, es la que surge de la necesi- 
dad de imprimir los listados a distintos 
anchos de columnas. Leyendo pues 
cada línea del programa que queremos 
listar por ejemplo en 10 columnas, po- 
demos controlar la longitud del regis- 
tro que saldrá por la impresora, sim- 
plemente cortándola en la variable que 
acompaña a LINE INPUT. 

Esto justamente es lo que hace el pro- 
grama "Formita.ASC" que acompaña 
a esta nota. Los caracteres especiales 
que acompañan a los LPRINT corres- 
ponden a los de una impresora Brother 
M-1Ó09, pero seguramente nos dare- 
mos maña (si es que no coinciden) para 
buscar el reemplazo de éstos en la im- 
presora de que dispongamos. 

LOAD: Sobre esta instrucción no hay 
mucho que decir. Se la utiliza, como 
era de esperar, para cargar programas 
escritos en BASIC. 

Veamos algunos ejemplos de sus dis- 
tintas posibilidades. 

LOAD "MEME": cargará el programa 
MEME desde el drive A. 

LOAD "BRUJAS", R: cargará y ejecu- 
tará el programa BRUJAS del drive 
A. 

LOAD "B:KDTS": cargará el programa 
KDTS del drive B, si es que tenemos la 
fortuna de poseer un segundo drive, o 
mejor dicho si tenemos la fortuna para 
poseer un segundo drive... 

Es bueno notar que este comando nos 
permitirá leer desde un disco, tanto un 
programa grabado en formato "stan- 
dard" como uno grabado en formato 
ASCII. 

LSET y RSET: Antes de ver para 
qué se las utiliza, aclaremos algunas 
cosas. 

Un archivo de acceso aleatorio tiene 
por supuesto distintas instrucciones 
de carga y lectura asociadas, a las de 
un archivo secuencial. 

Las instrucciones (tanto de lectura co- 
mo de escritura en disco) asociadas a 
los archivos de acceso aleatorio traba- 
jan asociadas al llamado buffer o aguan- 
tadero provisorio de datos. 

En este aguantadero, por ejemplo, se 
detienen a esperar los datos que que- 
remos pasen al disco hasta que el dri- 
ve diga: "estoy listo". 

Pero este lugar o banco de memoria 
llamado buffer, no es una bolsa de pa- 
pas en donde se tira la información a 
guardar en forma desordenada y a mon- 
tones, como casi todo, tiene sus re- 
glas. 

Estas reglas son las que vimos cuando 
hablamos de la instrucción FIELD. 
Veamos un ejemplo entonces, de lo 




que hacen estos dos comandos. 
Supongamos que hemos definido un 
campo en el buffer llamado A$, cuya 
longitud es de 20 lugares, y la palabra 
que queremos guardar tiene una longi- 
tud menor que la reservada, por ejem- 
plo "ANDI", entonces estas instruc- 
ciones se comportarán como sigue: 
LSET A$="ANDI" llenará con espa- 
cios los siguientes 1 6 lugares a ANDI, 
V' RSET A$="ANDI" cargará en A$ 1 6 
espacios en blanco y luego completará 
los siguientes 4 lugares con "ANDI". 
Este proceso se llama justificar a de- 
recha o a izquierda. 

También puede usárselas en combina- 
ción con la impresora o la pantalla, pe- 
ro su funcionamiento es levemente dis- 
tinto, veamos. 

Supongamos que en la variable CRIS- 
TIAN$ tenemos almacenados 30 es- 
pacios, si efectuamos l.a instrucción: 
RSET CRISTIAN$="FERNANDO" y 
luego imprimimos CRISTIAN$ por pan- 
talla o impresora, veremos que se de- 
jan los 22 espacios libres correspon- 
dientes al resto de los 30 y luego la pa- 
labra FERNANDO. 

Si en cambio efectuamos la instrucción 
LSET CRISTIAN$="FERNANDO" se 
imprimirá en primer lugar la palabrita 
"FERNANDO" y luego los 1 6 espacios. 
MAXFILES: Esta es una de las va- 
riables peculiares del DOS. 

En ella se "almacenará" el valor numé- 
rico correspondiente a la cantidad má- 
xima de archivos que usaremos a la vez 
en un programa nuestro, tanto de lec- 
tura como de escritura. 

El rango de valores posibles de MAX- 
FILES es de 0 a 15. 

Si efectuamos, por ejemplo: MAXFI- 
LES=12 podremos usar a la vez esa 
cantidad de archivos. 

Si el valor de esta bendita variable es 
cero, sólo podremos usar las instruc- 
ciones SAVE y LOAD, para manejar ar- 
chivos. 

Si no especificamos otra cosa, nor- 
malmente, desde la iniciación del sis- 
tema, MAXFILES tendrá el valor 1, con 
el consabido efecto. 

MERGE: Se usa para agregar un pro- 
grama BASIC grabado en ASCII y re- 
sidente en disco, al programa BASIC, 
también, residente en el momento de 
llamarlo en la memoria de la máquina. 
Si alguno de los números de línea del 
programa que tenemos en memoria 
coincide con el del programa que se 
está mezclando desde disco, esta últi- 
ma no será cargada. 

Como ejemplo podríamos ejecutar lo 
siguiente: MERGE "GONZALO" siem- 
pre y cuando el programa "GONZALO" 
esté grabado en el disco en forma 
ASCII. 

ÑAME: Sirve para cambiarle el nom- 
bre a archivos existentes en el directo- 
rio de nuestro diskette. 


Así, ÑAME "CLAUDIO" AS "CORTA- 
ZAR" le cambiará el nombre al archivo 
existente en el disco, cuyo nombre era 
CLAUDIO por el de CORTAZAR. 

El programa o archivo en sí no es toca- 
do en absoluto, sólo su nombre. 

OPEN: Esta sentencia permite inter- 
actuar con la diskettera de varias for- 
mas y con varios tipos de archivos. 

La forma general que toma ésta junto a 
sus parámetros es: 

OPEN "nombre del archivo" FOR mo- 
do AS # número asignado LEN=longi- 
tud. 

Donde "modo" corresponde a la pala- 
bra que identificará al tipo de archivo 
que por medio de esta instrucción se 
está habilitando, y que puéde ser: OUT- 
PUT, INPUT, APPEND o simplemen- 
te riada. 

El modo OUTPUT define al archivo en 
cuestión, como de salida de datos que 
serán grabados unos tras otros en for- 
ma secuencial. 

El modo INPUT define al archivo de la 
misma forma que el anterior pero para 
entrada de datos desde la unidad de 
discos. 

El modo APPEND al igual que los ante- 
riores define al archivo como secuen- 
cial y permite añadir registros a un 
archivo de esta clase ya existente en 
el disco. 

Si simplemente se omite la frase "FOR 
modo", la computadora asume que el 
archivo que se está definiendo será 
tanto de lectura como de escritura en 
disco y que el acceso será aleatorio. 

El número que figura luego del símbolo 
numeral identificará al archivo, y debe 
estar comprendido en el rango que se 
haya especificado en la variable "MAX- 
FILES". 

Por último, longitud' es un número en- 
tero, que de ser puesto junto a 'LEN=' 
indica la longitud que tendrán los re- 
gistros. 

Este puede variar entre 1 y 256. Sólo se 
lo puede utilizar en archivo del tipo de 
acceso aleatorio. 

Debemos tener en cuenta que si abri- 
mos un archivo para salida de datos en 
forma secuencial, y existía otro con el 
mismo nombre, este último será des- 
truido. 

Otra de las facilidades es la de poder 
tener un mismo archivo abierto para 
lectura en forma secuencial con un de- 
terminado número y, con otro núme- 
ro, tener abierto a la vez este mismo en 
forma aleatoria. 

PRINT# y PRINT# USING: Tan- 

to la primer instrucción como la segun- 
da, se utilizan para enviar datos a la 
unidad de discos en forma secuencial. 
Veamos con ejemplos como trabajar 
con ella: 

PRINT #1 ,OSCAR; PATRICIA graba- 
rá en el archivo número 1 del disco el 


contenido de las variables OSCAR y 
PATRICIA. 

PRINT #, OSCAR$;PATRICIA$ gra- 
bará en el archivo correspondiente el 
contenido de esas dos variables alfa- 
numéricas. Si, OSCAR$="Editorial" y 
PATRICIA$="PROEDI" en el disco la 
información quedará como Editorial 
PROEDI. 

Así, cuando leamos por medio de la 
instrucción INPUT#1,A$ en esta va- 
riable quedará almacenado Editorial 
PROEDI. 

Si en cambio OSCAR$="Editorial;' y 
PATRIC!A$=" PROEDI" en el disco 
quedará lo siguiente: Editorial, PROE- 
Dl. 

Luego cuando leamos por primera vez 
con INPUT #1,A$ en esta última que- 
dará "Editorial" y al hacerlo por segun- 
da vez quedará PROEDI, pues la coma 
es un delimitador válido. 

El comando adicional USINT se pue- 
de utilizar al igual que en pantalla para 
formatear los datos a salir por impre- 
sora. 

RUT: Este es el comando que nos per- 
mitirá colocar un dato en el buffer, pa- 
ra luego ser mandado al disco en el 
archivo de acceso aleatorio que se ha 
abierto para tal fin. 

En la figura 1 vemos un ejemplo 7 de 
aplicación de esta instrucción. A esta 
altura de los acontecimientos ya pode- 
mos comprender su funcionamiento 
perfectamente, sin más aclaraciones. 
RUN: Este comando seguido del 
nombre de un programa válido, hará 
que éste se cargue en memoria y se 
ejecute automáticamente. 

Esta instrucción cierra todos los archi- 
vos que hasta el momento de ejecutar- 
la, hayan permanecido abiertos. Pero 
si agregamos una 'R' luego del nom- 
bre, éstos permanecerán abiertos. 

De esta forma, RUN "TAMI",R dejará 
sin tocar los archivos que se hayan 
abierto hasta el momento, cargará el 
programa "TAMI" y por último lo eje- 
cutará. 

SAVE: ¿A que no saben lo que hace 
esta instrucción? ¿Cómo se dieron 
cuenta? Así no me dan ganas de con- 
tarle más nada. 

Lo que a lo mejor no se han dado cuen- 
ta es que si Juego del nombre que le 
dimos al programa para grabarlo, le 
agregamos una A, el programa será 
grabado en su versión ASCII. 

Al grabar de esta forma, lógicamente 
se tarda más tiempo. 

SYSTEM: Este es el nombre de la ru- 
tina que nos permitirá entrar en un mo- 
do editor de DOS, dentro del cual se 
encuentran las instrucciones que ve- 
remos en el siguiente número. 

Dentro de la siguiente entrega vere- 
mos también algunos comanditos que 
se pueden usar también desde el intér- 
prete BASIC. 



JUGANDO EN 
TRES DIMENSIONES 

Clase: educativo 



Una de las aplicaciones 
más interesantes en má- 
quinas dotadas de una ca- 
pacidad gráfica considera- 
ble, es la exploración de la 
tercera dimensión. 

Los gráficos en 3-D, además 
de su utilización práctica, 
logran sensaciones estéti- 
cas sumamente atractivas. 


Puede volverse un juego el 
hecho de crear nuevas for- 
mas o vistas modificando 
parámetros y funciones, in- 
cluso sin introducirse en la 
búsqueda de nuevos méto- 
dos de perspectiva. 

Para los que siempre están 
a la búsqueda de nuevas 


emociones, o para los que 
quieren comenzar a experi- 
mentar con formas nuevas 
de dibujar con la computa- 
dora, les ofrecemos aquí 
dos graficadores muy espe- 
ciales. 

El primero muestra una 
perspectiva isométrica de 
la función especificada en 


el programa, en base a dos 
parámetros de entrada: 
"XMAX" e "YMAX", que 
determinan el rango en que 
será evaluada la función . Se 
evalúa entre 4- - el valor 
ingresado (por ej: Si en 
"XMAX" se ingresa 5, se 
evalúa entre 5 y -5). 

En primer lugar, la función 
es calculada y graficada 
simultáneamente en un sen- 
tido, y luego se barre en el 
otro, con los valores ya cal- 
culados. 

Podemos modificar los án- 
gulos de los ejes de la pers- 
pectiva alterando en la línea 
20 los valores de "AY" y 
"AX", que van expresados 
en radianes. 

Para cambiar la función de- 
bemos escribir la nueva a 
partir de la línea 2000, con 
el resultado en "Z", usando 
como variables "X" e "Y", y 
finalizando con un RETURN 
Es muy importante que el 
valor de la función en todo 
punto a evaluar no sobrepa- 
se -15 o -j- 15 y no sea 
demasiado pequeño porque 
no se vería con claridad. 

De todos modos experi- 
menten cambiando todo lo 
que quieran, aunque los re- 
sultados puedan ser catas- 
tróficos. Ahí es donde está 
la verdadera diversión. 

El segundo programa utiliza 
un método de visualización 
muy particular, ya que aquí 
no existen perspectivas, si- 
no que la función está vista 
desde arriba, y las diferen- 
cias de altura están indica- 
das por distintos colores. 
La forma de suministrarle 
los rangos y la función es la 
misma que en el caso ante- 
rior, pero el valor de la fun- 
ción no debe estar fuera del 
rango de 1 a 15,99. 

Aun cuando la función y los 
límites sean los mismos, 
notarán que el efecto logra- 
do es totalmente distinto en 
cada uno de los programi- 
tas. 

Jueguen y diviértanse con 
esto, mientras nosotros de- 
sarrollamos nuevos entre- 
nimientos. 

Fabian Jofré 
y Martin Salías 
(Club de Usuarios) 


10 COLOR 15,4,4 

1010 XX=CX*X*EX-CY*Y*EY+ 1 27 

30 DIM GX <21, 40 ) , GY (21, 40 ) 

1020 RE T URN 

30 AY=,9: AX=.5:SX=SIN(AX) : CX=CGS 

2000 Z=-C0S (SOR (X*X+Y*Y) ) *10 

(AX) :SY=SIN(AY) :CY=C0S(AY> 

2010 RETURN 

40 INPUT n XMAX n i B 

10 COLOR 15,1,1 

50 INPUT ,, ymax ,, ;d 

20 CLS 

60 a=-b:c=-d:ex=50/b:ey=50/d 

30 DIM CO (15) 

70 SCREEN 2 

40 FOR A=1 TO 15 : READ C0(A):NEXT 

30 FOR X=A TO B STEP (B-A)/20 

50 INPUT ” XMAX 11 ? B 

90 Y=C 

60 INPUT "YMAX" ?D 

100 GOSUB 2000 

70 A=-B:C=-DIEX=50/B:EY=50/D 

110 GOSUB 1000 

SO SCREEN 3:RY=-4 

120 PSET ( XX , Y Y ) 

90 FOR Y=C TO D STEP (D-C)/192*4 

130 RX=RX+1 

100 RY=RY+4 

140 RY=0 

110 RX=0 

150 FOR Y=C TO D STEP (D-O/40 

120 FOR X=A TO B STEP (E-A)/Ó4 

160'’ GOSUB 2000 

130 GOSUB 1000 

170 GOSUB 1000 

140 PSET <RX*4,RY) ,C0(Z) 

130 GX < RX , RY ) =XX 

150 RX=RX+ i 

190 GY (RX, RY) =YY 

160 NEXT X , Y 

200 RY=RY+ 1 

170 GOTO 170 

210 LINE -(XX, YY) 

180 DATA 1,4,12,6,13,5,3,2,3,7, 

220 NEXT Y , X 

9,10, 11,14, 15 

230 FOR Y=0 TO 40 STEP 2 

1000 Z=C0S <SQR(X*X+Y*Y) )*7+8 

240 PSET ( GX ( 1 , Y ) , GY ( 1 , Y ) ) 
250 FOR X= 1 TO 21. 

1010 RETURN 

260 LINE - ( GX ( X , Y ) , G Y ( X , Y ) ) 

Z=C0S (X+Y)*7+8 

270 NEXT X , Y 

Z=C0S (SQR(X*X*X-Y*Y) )*7+8 

230 GOTO 230 

1000 YY=Z-SX*X*EX-SY*Y*EY+87 

Q=SSR(X*X+Y*Y) :Z=CÜS(Q) /Q*7+8 







A LA COMPUTADORA PERSONAL 

Talentfísm 

NADA LE ES IMPOSIBLE ... 



... y para que todo 

0 provisión del hardware 
tanto de la consola 
como todos los 
periféricos y accesorios. 

0 la instalación y la 
puesta en marcha. 

Se han asociado para brindarle una red 
de solidaridad y atención, los siguientes 
concesionarios amigos ¡ 


le sea posible a Ud. en: 

° soft utilitario 
° soft para la educación 
° soft comercial 


AVELLANEDA 

ARGOS S.A. 

Avda. Mitre 1755 fCP 1870) Tel. 203-5227 

CAPITAL 

COMPUTRONIC S.A. 

Viamonte 2096 (CP 1056) Tel. 46-6185 

CASTELAR 

HOT BIT COMPUTACION 

Carlos Casares 997 (CP 1712) Tel. 629-2247 

SAN ISIDRO 

F. CORATELLA S.R.L. 

Cosme Beccar 249 (CP 1642) Te. 743-0734 









1 

T 


L MODEM 


M X 


5 10 


DE TALENT 


FIGURA 1 

300 BAUDIOS norma CCITT ORGI- 
NATE FULL DUPLEX 
300 BAUDIOS norma CCITT AIMS- 
WER FULL DUPLEX 
300 BAUDIOS norma BELL ORIGI- 
NATE FULL DUPLEX 
300 BAUDIOS norma BELL ANSWER 
FULL DUPLEX 

1200 BAUDIOS norma CCITT HALF 
DUPLEX 


Nuevamente la empresa Telemática nos 
sorprende con un importante desarro- 
llo: el Modem TMX-510. Veremos algu- 
nas de las características de este nuevo 
producto. 


La memoria del modem 

Esta caja mágica posee tres bancos de 
memoria de lectura solamente 
(EPROM) de 16 Kbyte cada uno y un 
cuarto chip de las mismas característi- 
cas de 32 Kbytes. 

En ellos se almacena todo el software 
necesario para que la comunicación 
sea posible y todo lo necesario para 
agregar las nuevas instrucciones BA- 
SIC que comandarán a esta cajita. 

Al encender nuestra MSX, estando co- 
nectada a ella, se inicializará de forma 
tal que queda lista para acceder a es- 
te sistema. 



ste novísimo periférico nos 
permitirá desarrollar una de 
las más gratas actividades en 
materia informática: la Tele- 


mática. 

Podremos comunicarnosc con él con 
otras máquinas o terminales, o con 
base de datos nacionales o extran- 
jeros, a través de una línea telefónica 
común. 

Las señales digitales que genera nues- 
tra computadora, son transformadas, 
gracias a éste, en analógicas que son 
envueltas poruña portadora modulada 
en frecuencia. 

En el otro extremo de la línea es nece- 
saria la presencia de otro modem que 
se encargue de traducir esta cola de 
datos codificados analógicamente en 
señales digitales. 

el diálogo entre dos módems puede 
establecerse de dos formas: 

Half dúplex (transmisión de datos en 
un sentido a la vez). 

Full dúplex (transmisión de los mismos 
en dos sentidos a la vez). 

En el primero de estos modos, antes de 
transmitir un dato, el modem "transmi- 
sor" debe verificar que el "receptor" 
esté en modo "escucha" y luego trans- 
mitir. 

Es necesario pues que se den inversas 
condiciones, para lograr la comuni- 
cación en sentido opuesto. 

La forma full dúplex permite que la 
transmisión y recepción sean simultá- 
neas. Usando para ello portadoras de 
distinta frecuencia para que no se pro- 
duzca errores. 

Para que este tipo de comunicación 
sea posible es menester que alguno de 
los equipos sea definido como ORIGI- 


NATE (que origina) y el otro como 
ANSWER (que responde). 

Es bueno recordar que TALENT MSX 
responde a las normas CCITT y BELL 
que se han adoptado mundialmente 
para las transmisión de datos entre 
equipos de esta naturaleza. 

Las velocidades de transmisión dispo- 
nibles son las que se ven en la figura 
1 . 


El canal de comunicaciones. 

Este se abre por medio de la instru- 
cción OPEN de la forma que sigue: 

OPEN "COM(n):" (FOR (modo) AS ( ) 
(n: número de archivo)) 

Así, ésta abre un canal de comuni- 
caciones para su posterior proce- 
samiento, definiendo un campo el buf- 
fer (bloque de memoria destinado para 







tal fin) de 128 bytes y prendiendo la 
portadora del modem. 

"Modo" define si es salida secuencial 
o entrada secuencial. Si este "modo" 
no es especificado, el modem queda 
preparado para trabajar en ambos sen- 
tidos al mismo tiempo. 

El número de archivo representa lo 
mismo que en cualquier otro archivo. 
Entre las instrucciones nuevas que el 
uso de éste requiere, se encuentra: 
SAVE "COMn:", a 

que permite enviar un programa BA- 
SIC a través de la línea. Si al final de la 
instrucción se especifica el comando 
"a" éste será enviado en su forma 
ASCII. De otra forma el programa via- 
jará tal cual se encuentra en memoria 
(instrucciones en tokens). 

Aclaramos que "n" es el número de ca- 
nal asignado a la transfusión. 

Lo que no es posible enviar es el nom- 


bre del programa como tal. 

También están disponibles las instru- 
cciones LOAD y MERGE, que funcio- 
nan de forma similar. 

Los que siguen son algunas de las lla- 
madas (CALLs) a subrutinas internas: 
CALLCOMINI: inicializa los pará- 
metros que regirán al modem. 

CALL COMON: habilita la ge- 
neración de una interrupción cuando 
es recibido un carácter del canal de co- 
municaciones especificado. 
CALLCOMOFF: deshabilita las in- 
terrupciones que validaba CALL CO- 
MON. 

CALL COMSTOP: deshabilita la 

posibilidad de guardar cada carácter 
recibido en el buffer de comunicacio- 
nes indicado. 

CALL COM: define la línea de co- 
mienzo de la subrutina hacia donde se 
producirá el salto del programa, cuan- 


do se genere una interrupción debido a 
la llegada de un carácter por el canal de 
comunicaciones. 

CALL COM BREAK: envía un cará- 
cter que significa en el lenguaje de los 
módems, detener la transmisión. 
CALL COMTERM: este comando 
permite emular una terminal de comu- 
nicaciones. 

Existen algunas más, pero Creemos 
que con estas basta para mostrar lo 
que es capaz de realizar esta cajita má- 
gica. 

Este es otro de los pequeños pasos que 
permiten lograr grandes cosas. 

No puede ser de otra forma, pues este 
desarrollo mejora y activa la saludable 
costumbre de la cultura, acortando las 
distancias de la divulgación. 

Por último, en la figura vemos un plano 
de las dimensiones físicas de este 
aparato. 


NOSE QUEDE SIN SU 
Talent MSX 


...y congele precios. 



SERVICIOS EN INFORMATICA 


CAPITAL: PARANA 164 (1017) TEL : 35-3329/1 631 /0832 
VICENTE LOPEZ: Av. LIBERTADOR 882 (1638) _ 


COMPUTADORAS 
PERSONALES 

^Scommodore 

MICRODIGITAL 

SINCLAIR 

ACCESORIOS Y SOFTWARE PARA LAS MISMAS 


RIVADAVIA 13734 Ramos Mejía (1704) Tel.: 654-6844 



Matemática 


MSX 

Estas son las fórmulas de 
las funciones matemáticas 
más usadas. 

Secante 

SEC (X)=1/COS(X) 

Consecante 

CSC(X)=1/SIN(X) 

Cotangente 

COT(X)=1 /TAN(X) 

Arco seno 

ARCSIIM(X)=ATN(X/SQR(— 

X*X+1)) 

Arco coseno 

ARCCOS(X)=-ATIM(X/SQR 
(— X*X+1 ))+1 .5708 

Arco secante 

ARCSEC(X) 

=ATN(X/SQR(X*X-1 ))+ 
SGN(X)-)* 1.5708 
Arco cosecante 
ARCCSC(X) 

=ATI\I(X/SQR(X*X-1 ))+ 
(SGN(X)— 1)*1 .5708 
Arco cotangente 
ARCCOT(-X) = 

=ATN(X)+1 .5708 

Seno hiperbólico 

SIN H(X)={ EXP(X)— EXP 
(-X))/2 

Coseno hiperbólico 

COSH(X)=(EXP(X)+EXP 

(-X))/2 

Tangente hiperbólica 

TANH(X) 

=(EXP(X)— EXP(— X))/EXP 
(X)+EXP(— X)) 

Secante hiperbólica 

SECH(X)=2/(EXP(X)+EXP 

(-X)) 

Secante hiperbólica 

CSCH(X)=2/(EXP(X)— EXP 

(-X)) 

Cotangente hiperbó- 
lica 

COTH(X) 

=(EXP(X)+EXP(— X))/(EXP 

(-X)) 

Arco seno hiperbó- 
lico 

ARC- SINH(X)= 

=LOG(X+SQR 

(X*X+1)) 

Arco coseno hiperbó- 
lico 

ARCCOSH(X)=LOG(X+ 

SQR(X*X-1)) 

Arco tangente hiper- 
bólica 

ARCTAN H(X)=LOG(( 1 +X)/ 

(1 X))/2 

Arco secante hiperbó- 
lica 


ARCSECH(X)=LOG((SQR 

(-X*X+1)/X) 

Arco secante hiperbó- 
lica 

ARCCSCH(X)=LOG((SGN 
(X)*SQR(X*X+1 )+1 )/X) 

Arco cotangente hi- 
perbólica 

ARCCOTH(X)— LOG((X+1 )/ 
(X— 1))/2 

Títulos y 
explicaciones 

Los comentarios que se uti- 
lizan en los programas, so- 
bre el manejo y utilidad de 
los mismos, aparecen de 
una forma muy tradicional. 
Generalmente son frases 
que de golpe se ven sobre la 
pantalla. 

Pero es hora que rompamos 
con las formalidades de pre- 
sentación de los programas. 
Por eso aquí proponemos 
dos formas un poco más 
originales. Una de ellas coin- 
cide en hacer imprimir los 
comentarios y aclaraciones 
necesarios de un programa 
•como si estuvieran desfilan- 


do a lo ancho de la pantalla. 
Pero si bien es vistosa, es un 
poco dificultosa para leer. 
Esto se soluciona incremen- 
tando el tiempo de espera 
hasta que aparezca la próxi- 
ma letra. 

En el programa de la figura 
uno, el FOR de la línea se- 
tenta es el resultado para 


permitir leer las palabras. Si 
necesitamos más tiempo 
para poder leer, se puede 
cambiar el tope 30 de esa 
línea por cualquier otro va- 
lor. De esta manera conse- 
guiremos que las palabras 
no huyan de nuestra visual. 
Otra manera original de ha- 
cer presentar las explicacio- 
nes es que suban desde la 
parte inferior de la pantalla, 
de una forma muy similar a 
la que se suele ver cuando 
las películas anuncian a los 
actores. En la. línea 60 del 
programa de la figura dos, se 
realiza el centrado de la ca- 
dena a imprimir. 

En la línea 30 se declara la 
pantalla de 40 caracteres de 
ancho. Por este motivo el 
razonamiento para hacer 
centrar la cadena es dividir 
la longitud de la misma por 
la mitad y restárselo a la 
mitad de la pantalla. El resul- 
tado sería entonces la canti- 
dad de caracteres libres so- 
bre el margen izquierdo. Lue- 
go se imprime la variable 
alfanumérica. 


En el DATA de la línea 90, se 
pueden agregar tantas pala- 
bras como sean necesarias, 
pero la cantidad de cadenas 
de caracteres debe coincidir 
con el tope del FOR de la 
línea 40. 

Si este número es menor 
que la cantidad de datos a 
leer, sólo aparecerá en la 


pantalla el número de veces 
que se incremente el FOR 
Pero si el número del FOR 
supera al de datos, aparece- 
rá en la pantalla un mensaje 
de error. 

MSX es un 
cuentavuelta 

Para aquellos que tengan 
grabador sin contador, les 
proponemos un método 
para encontrar un programa 
y usar la computadora como 
contador. 

Antes de introducir la ins- 
trucción SAVE, inicialice- 
mos el reloj interno de la 
computadora en cero y des- 
pués sí ya podemos entrar la 
instrucción para grabar. 

Al terminar de salvar el pro- 
grama en cinta, pidamos 
que imprima el valor TIME. 
Con esto sabremos cuánto 
tiempo dura el pasaje del 
programa por el grabador. 
No hace falta introducir 
estas instrucciones con un 
número de línea, basta con 
entrarlas de la siguiente ma- 
nera: 

TIME=0: CSAVE " nombre": 
PRINT TIME 

Para cargar un programa, 
usemos la siguiente subru- 
tina: 

65000 TIME=0: MOTOR 
ON 

65010 IF TIMEFnum THEN 
MOTOR OFF: GOTO 65040 
65020 GOTO 65010 
65030 CLOAD "nombre": 
PRINT TIME 

donde num equivale al tiem- 
po que debemos dejar correr 
la cinta antes de leer algún 
programa, "nombre" res- 
ponde al programa que que- 
remos leer. 

Bien 

aleatorios 

Si bien es cierto que la fun- 
ción RND galera números 
aleatorios, también es ver- 
dad que siempre es la mis- 
ma secuencia de números. 
Pero si conseguimos intro- 
ducir la variable TIME, al 
ser ésta una variable que 
cambia de valor 50 veces 
por segundo, nos permitirá 
obtener verdaderos valores 
al azar. 

Por ejemplo X=INT (RND 
(TIME)*A)-M 

Esta instrucción genera va- 
lores entre 1 y A. 


Figura 2 

1 Q 1 ..... v* vi;. J r ,Ü r~í D M S X i* : 1 1 

: - J O L.- 1~. iZ. Í2L i 'h v 

/s.f) pi jO T — i Tfj- 4 

bU ftb.H.ü A é> 

60 LOCATE 20 - (LEW <A$) /2) , 24 
A* SPRINT CHR$ < 10) s 


cíí-j ]“iATA ESTO ? NO? PE" U DE? SEGUIR 


Figura 1 


10 REM ** LOAD MSX** 

20 CLS s COLOR 1,7: SCREEMO : W I DTH 40 
30 PANTALLA UTILIZANDO LAS POSIBILIDADES 

DE MID* ESTO ES UN DESFILE DE TEXTO' 

EN LA PANTALLA UTILIZANDO LAS POSIBILIDADES 
DEL MID$" 

40 P=41 

50 LOCATE 0,10 
60 PRINT MID*(A*,P,40) 

70 FOR F=1 TO 30: NEXT 
SO P=P+1 

90 IF P—LEN ( A$ ) —4 1 THEN P=1 
100 GOTO 50 






CQMPUPRANDO S.C.A. 

Av. de Mayo 965 
(1085) Capital 
Te.: 38-0295 

COMPUSHOP S.A. 

Córdoba 1464 
(1055) Capital 
Te.: 41-8730-42-9568 
49-21 65 

ARGECINT S.R.L 

Ventura Bosch 7065 
(1408) Capital 
Te.: 641-0327/4892 
641 -3051 

CP 67 CLUR S.A. 

Florida 683 Loe. 1 8 

(1005) Capital 
Te.: 393-6303 

' 

M1CR0STAR S.A. 

Callao 462 

(1022) Capital 

SIST. LOGICAL S.R.L. 

Esmeralda 561 3° B 
(1007) Capital 
Te.: 393-7669 

Te.: 45-0964/1662 

(AREA EDUCATIVA 
UNICAMENTE) 

DIST. CONCALES S.A. 

Tucumán 1458 
(1050) Capital 
Te.: 40-8664/0344 

NIICROMATICA S.R.L. 

Av. Pueyrredón 1135 

(1118) Capital 
Te.: 821-5578 



I 

Este programa es de gran 
utilidad para aquellos que 
deban estudiar las capitales 
de los países de Europa. 

La tarea puede resultar abu- 
rrida para los que deban 
recurrir a tediosos libros. 
Pero este es un juego tan 
divertido y ameno que nos 
permitirá desafiar a cual- 
quier profesor hasta que se- 
guramente lo derrotaremos 
en alguna capital (como la 
de Islandia). 

El juego no sólo nos informa 
sobre una ciudad sino que 
también nos muestra la ubi- 
cación geográfica de la mis- 
ma en el mapa. Así, primero 
nos preguntará por la capi- 
tal, nos dirá si supimos con- 
testar y en caso contrario 
nos corregirá. 

Además, nuestra maquinita 
se siente lo suficientemen- 
te inteligente y no cree que 
conozcamos la bandera de 
dicho país. Por lo que trata- 
rá de humillarnos mostrán- 
donos el símbolo patrio de 
cada país. 

La aparición de los países 


EUROPA 


clase: educativo 


está dada por la función 
RND y esto hace que algu- 
nas veces se repita más de 
una vez la misma pregunta. 
Dejamos para ustedes la 
opción de modificar esto y 
como sugerencia les acon- 
sejamos guardar el número 
del país elegido en una ma- 
triz auxiliar de dimensión 


28. Aunque vale aclarar que 
los números ya están guar- 
dados en una matriz. Cada 
vez que se fije un número 
como posible país a interro- 
gar, se verifica que dicho 
número no se encuentre en 
la matriz auxiliar. Si el nú- 
mero ya había salido se pre- 
guntará por otro hasta ob- 


tener uno distinto a todos 
los aparecidos. 

Otra variante posible sería 
agregar una variable que 
cuente las cantidades de 
países que se nos preguntó 
y en otra variable la canti- 
dad de capitales que supi- 
_ mos contestar correcta- 
' mente. 


Estructura del programa: 

30-110in¡cializa la matriz con los países y otra para las 
capitales 

1 20*1 60 pantalla inicial de introducción 
170-1 90 elige modo tres de pantalla y escribe Europa bien 
grande sin tener que definir caracteres gráficos (este 
es un ejemplo del uso del modo tres) 

200-41 0 pregunta por la capital y verifica la respuesta, 
acompañado por mensaje aclaratorio y música de 


denota o de triunfo, según haya sido la contestación. 
420-630 dibuja el mapa 

640-^90 gráfica la bandera del país en cuestión y nos marca 
en el mapa la ubicación geográfica del mismo. 

Variables importantes 

N$: matriz con los países 
C$: matriz con las capitales 

X ■ subíndice de la matriz con los países que fue elegido por el 
RND en la línea 230 


30 Din N$(28) ?C$(28) 

f ( N* ü )=^pANIA !, :N$ (2) = w AUSTRIA* : N$ (3) = M BEL6ICA" : N$ (4) ^‘BULGARIA* : N$ (5) = ,, CHEC0L0VAQUI A" : N$ (6) -‘DINAMARCA" : N$ C7) = a ESPA“+CHR$ Í&HA5) + 
m • N$ (8) - FINLANDIA ^ 

fS-: HA 5)+”A" : N$ ( 1 1 )="5REÜIA" : N$ ! 12! - ‘HOLANDA 11 : N$ ( 13)="HUN6RIA" : N$ í 14) =" IRLANDA" : N$ í 15) =" ISL 

ANUIA ¡N$Q6)= ITALIA 

6y M$(17!="nftLTA” :N${I8)=''N0FiEbft“ :N$(Í9)="PC¡L0N!A";tJ$(2C) ="PiTRTL6ftL":N$(21)="RD . ALEMANIA":N$Í22S="RF. ALEMANIA" ¡N$ (23! ="RUMftNIA" 

70 N$(24I= ,i SLECIA":N$(25)="SJ¡ZA":N$í26!="TURQ!J!A“:N$(27!="¡J,R.S.S.“:N$(28)="YIJ60S i lAVIA" 

^ 2,= " vi ^N^“ : CÍ< 3 ) ="B R USELitó"í c ^(4>=SStM :7I ft ll seí {5)= , 'Pftfa5ñ l ':C : $(6)=''Cí | PENHAGUE":r:$(7)= !, |«}ADRlD"iC*(S>="!-ELSIM<I“:Cí <9 

9 Vff^nA"" L ^^^ ll:C *^^ = ' ,ftT ^^'' :C * { ^ =U ^ TE l^^ l,: ^ < ^ 5= * BU I^^ES T '' ! Ct(14)="DL!BLIN'':C$(15)=“REYKJAVIK ,l 5C$(16)=“ROI1A":C$!17)=“LA 
|00 C$ÍÍ8)="OS-0“:CÍ(19)="VARS0VIA"';C$(20!=' , LISB!M“!C$(21)="BERLIN"!C$S 2 2)=“B0NN":C${23 )="BUCAR E ST"!(^í24)="EST(SIOLM0"!C${^)="BERNA 





1 10 C$ (26) =' WARA" : Cí (27) ="!-ftSC!J" :C$ (28) =" BELGRADO" 

120 CLS:PRINT“ INTRODUCIR LA CAPITAL DE LA NACION^PRINT-CCRRESPONDIENTE* 

130 PRINT: PRINT"Y FISIONAR LA TECLA -RETURN-" 

140 PRINT: PRINPPARA TERMINAR EL PROGRAMA PULSAR LAS TECLAS CRTL-STOP A LA VEZ" 

150 PRINT: PRINT: PRINT'PARA COlENZAñ PRESIONAR CUO.QUIER": PRINT "TECLA" 

160 IF INKEYÍ=“" THEN GOTO 160 
170 OPEN "GRP:" AS41 : SCREEN 3 
180 PRESET (40,60) 

190 PRINTtl, "EUROPA" sFOR 1=1 TO 2000: NEXT 
200 CLS 
210 SCREEN O 
220 KEY OFF 

230 X=RND (-TIME) : X=INT (RND ( 1) *28) +1 

240 as 

250 COLOR 15,4,4 
260 LOCATE 8,10 
270 PRINPCAPITAL DE ";N$(X) 

280 LOCATE 8,12 
290 INPUT R$ 

300 1F R$=C$(X) THEN GOTO 380 
310 PRINT" OOOOOOO Ffl_LO 0000000" 

320 LOCATE 8,16 
330 PRINT “ES "jCKX) 

340 PLAY ’CCCCCCC" 

350 FOR 1=1 TO 2000: hEXT 

360 as 

370 GOTO 440 

380 PR1NT"AB ABABABA ACERTO ABABABABA" 

390 PLAY"04F#DBAE6FiEF#R4" 

400 PLAY"04F#DBAE6F#ED" 

410 FOR 1=1 TO 2000: NEXT 
420 CLS 
430 GOTO 440 

440 COLOR, 5 i 

450 SCREEN 2 ' 

160 PSET (32,170) 

470 DRAH"F6E6R6E6U6E6U6E6R6F24D666R6E6U6R6H24EéF12R6F18D6F6R6Ul2R6H6U6R12F6E6U12E12R6F6E12D 

12R6F18D6G6L30H6L6G6H666D12F12R18F6E6R30E 

6R6U18F6R6" 

480 DRAH " U 1 38H6L6H 1 8L2466D6G6D6G6D666L6JJ6H6R1 2U6H6L6H6L6IJ6L 1 8G36L6G 12D1 8R6E6F6D 1 2R6E6U 12E6H6E1 2R. 
6U6E6R6D6G12D6F6R12D6L6D6L6D12L666L1 
2G6L6H6" 

490 DRAH"!J1266D12L12b6L6612L12D6F6D12L18D24Ró" 

500 DRftW"BN32, 170U18L6" 

510 DRATBM62, 146118° 

520 DRAW"BM74, 140U6E6Míl8JJ6NH12E6f^l2NU12F6N66R18F6N66R12E12NU6LlSH6NH6G6L6N66H6U6* 

530 DRAW"BH92, 134E6F6R6F6R12F6NR6E6R24BE6U12H666L24F666L666" 

540 DRAW'BMl 16, 152R6F6ND6E12R6F6" 

550 DRAN“BK224, 158R6F6R6” 


670 LI)C (124, 155)- (127, 158), T,BF 
680 FOR H=1 TO 30: NEXT H 
690 NEXT T,J 
700 GOTO 210 

710 LINE (44,20)-(84,30),8,BF:LINE(44,30)-(84,40),15,BF:LINE(44,40)-(84,50),8,BF 

720 FOR J=1 TO 50: FOR T=1 TO 3 

730 LINE ( 109, 125) - ( 1 12, 128) , T, BF 

740 FOR H=1 TO 30: NEXT H 

750 NEXT T»J 

760 GOTO 210 

770 LINE (42, 20) - (56, 50) , 1 , BF: UNE (56, 20) - (70, 50) , 10, BF: L INE (70, 20) - (84, 50) , 8, BF 

780 FOR J=1 TO 50: FOR T=1 TO 3 

790 LINE(77,111)-(79,114),T,BF 

800 FOR H=1 TO 30: NEXT H 

810 NEXT T»J 

820 GOTO 210 

830 LINE(44,20)-(84>3Q)»15,BF:LINE(44,30)-(84,40) ,12,BF:LINE(44,40)-(84,50)»8,BF 

840 FOR J=1 TO 50: FOR T=1 TO 3 

850 LIf€ (149, 144) -(152, 147), T,BF 

860 FOR H=1 TO 30: NEXT H 

870 ÍEXT T,J 

880 GOTO 210 

890 A$="R42D18L24H18" 

900 DRAH*C15BM44, 15"+A$ 

910 PAINT(46,16),15 
920 A$="142E18R24D18" 

930 DRAN"C8Bf186i 51"+A5 
940 PAINT(85,49),8 
950 DRAN"BM44, 15C15D36" 

960 FOR J=1 TO 50: FOR T=1 TO 3 
970 LINE(113, 117M116, 120),T,BF 
980 FOR H=1 TO 30: NEXT H 
990 NEXT T,J 
1000 GOTO 210 

1010 LINE(44,20)-(51,33),8,BF:LINE(54,20)-(84,33),8,BF:LINE(44,36)-(51,49),8,BF:LINE(54,36)-(84,49),8,BF 

1020 LINE(44,33)-(84,36),15,BF:LINE(51,20)-(53,49),15,BF 

1030 FOR J=1 TO 5O:F0R T=1 TO 3 

1040 LINE(90,95)-(93,98),T,BF 

1050 FOR H=1 TO 30 :)€XT H 

1060 .NEXT T,J 

1070 GOTO 210 

1080 LINE(44,20)-(84,29),8,BF:LINE(44,29)-(84,41),10,EF:LINE(44,41)-(84,50),8,BF 

1090 FOR J=1 TO 50: FOR T=1 TO 3 

1100 L1)E(42,156)-(43,159),T,BF 

1110 FOR H=1 TO 30: NEXT H 

1120 )CXT T,J 

1130 GOTO 210 

1140 LINE (44, 20) -(51 ,33) , 15,BF:Llf£ (54,20)- (84,33) , 15,BF:LINE(44,36)-(51,49) , 15,BF:LINE(54,36)-(84,49) , 15, H 

1150 LI)€(44,33)-(84,36),4,BF:LINE(51,20)-(54,49),4,BF 

1160 FOR J=1 TO 50:FGR T=1 TO 3 

1170 LINE(137,65)-(140,68) ,T,Bf 

1180 FOR H=1 TO 30: NEXT H 

1190 NEXT T,J 

1200 GOTO 210 


560 DRAH"BN140> 110E¿H616H6B66BL12D6 M 

570 DRAW"BM146,68E12U6H6U18E6BL6L12ND18G6L6612D6612D6L6D18" 

580 DRAN"BM86» 182R6D6L6U6" 

590 DRAW"BH38> 110E6R18U6E6H12U18H6G6D6F6G6D666F666D6* 

600 DRAT BM26, 92E6U6E6H6L666D666D6R12" 

610 DR*"K126,26E12U6H6L12D6H6L6D6R6D12F6R6" 


1210 LINE(42,20)-(56,50),4,BF:LINE(56,20)-(70,50),15,BF:LINE(70,20)-(84,50),8,BF 

1220 FOR J=1 TO 50:F0R T=1 TO 3 

1230 UNE (57, 125) - (60, 128) , T , BF 

1240 FOR H=1 TO 30:)EXT H 

1250 NEXT T,J 

1260 GOTO 210 


j 


1270 LINE(50,2)-C92,44),4,BF:LINE(50,20)-(?2,26),8,BFíLINE(68,2)-(74,44),8,BF 
1280 A$="R3F14D3L3H14U3* 

1290 ERAH'C8W50,2*+A$ 

1300 PAINT (62» 14) »8 
1310 A$=’R3D3G14L3U3E14" 

1320 DRArC88K89,2'+A$ 

1330 PAINT (80» 14) »8 
1340 AS=“D3R3E14U3L3614" 

1350 DRANT8BM50, 41 *+A$ 

1360 PAINT (62, 32), 8 
1370 A*='D3L3H14U3R3F14" 

1380 DRAN"C8B(192,4r+A$ 

1390 PAINT (80, 32), 8 
i40ó Eft^ a C8íilt9i»4r'»f« 

1410 FOR J=1 TO 50:FOR T=1 TO 3 
1420 UNE (60,98) -(63, 101 ),T,BF 
1430 FOR H=1 TO 30:fOT H 
1440 NEXT T, J 
1450 GOTO 210 

14-60 LINE(44,20)-(84,49),7 ? BF:LINE(49,20)-(52,36),15,BF:LINE(44,27)-(60,30),15, 
BF:Uf€(60,24)-(84,27),15,BF 

1470 LINE(60,3Ó)-(84,33),15,BF:LINE(44,36)-(84,39),15,BF:L1NE(44,421-(84,45),15,BF 

1480 FOR J=1 TO 50: FOR T=1 TO 3 

1490 UNE (137, 173) -(140, 176), T,BF 

1500 FOR H=1 TO 30:NEXT H 

1510 NEXT T,J 

1520 60TO 210 

1530 LINE(44,20M34,3Q) j8,EF:LINE(44,30)-(84,40)»15jBF:UNS(44j40)-(84,50),4»BF 

1540 FOR J=1 TO 50: FOR T=l TO 3 

1550 LINE(30, 104)-(83,1G7),T»BF 

1560 FOR H=1 TO 30: NEXT H 

1570 fEXT T»J 

1580 GOTO 210 

1590 LINE(44,20)-(84,30),8,BF:UNE(44,30)-(84,40),15,BF:L1ÍC(44,40)-(34»50),12,BF 

1600 FOR J=1 TO 50:F0R T=i TO 3 

1610 UNE (125, 131) -(128, 134) ,T,BF 

1620 FOR H=1 TO 30:)EXT H 

1630 NEXT T,J 

1640 GOTO 210 

1650 LINE(42,20>-(56,50M2,BF:LINE(56,20)-(70,50M5,&F:L1NE(70,2Ü>-{84,50>,9,BF 

1660 FOR J=1 TO 50:FOR T=1 TO 3 

1670 UNE (31, 80) -(34, 33), T, 8F 

1680 FOR H=i TO 30:NEXT K 

1690 NEXT T,J 

1700 GOTO 210 

1710 UNE(44,20)-(51,33),4 f BF:Uf£(54,20)-(84,33),4,BF:LINE(44,36)-(51,49),4,BF 

1720 UNE(54,36)-(84,49),4,BF:LINE(44,33)-(S4,36),8,BF:LINE(51,20)-(53,4?),8,BF 

1730 FOR J=1 TO 50: FOR T=i TO 3 

1740 LINE(18,18)-(21,21),T,BF 

1750 FOR H=1 TO 30:NEXT H 

1760 NEXT T, J 

1770 GOTO 210 

1780 UNE(42,20)-(5ó,50),12,BF:LIf£(56,20)-(70,50),15,BF:UNE(70,20)-(84,50),8,BF 

1790 FOR J=1 TO 50: FOR T=1 TO 3 

1800 UNE (91, 154) -(94, 157), T,BF 

1810 FOR H=1 TO 30: NEXT H 

1820 NEXT T,J 

1830 GOTO 210 

1840 UNE (42,20) - (62,50) , 15, Bf : UNE (64,20)- (84, 50) ,8, BF 
1850 ORAN * BN46 , 26C8R3U3R2B3R3D2L 3D3L2U3L3U2 ’ 

1860 FOR J=1 TO 50: FOR T=1 TO 3 
1870 LINE<89, 185)-(92»188),T,BF 
1880 fUR R=1 IU 30:rtXl H 
1890 NEXT T,J 
1900 GOTO 210 

1910 LINE(44,20)-(51,33),8,BF:LINE(54,20)-(84,33),8,BF:LINE(44,36)-(51,49),8,BF 
1920 LIÍ£(54,36)-(84,49),8,BF:LINE(44,33)-(84,36),4,BF:LINE(51,20)-(54,49),4,BF 


1930 FOR J=1 TO 50: FOR T=1 TO 3 
1940 UNE(92,71)-(95,74),T,BF 

1950 FOR H=1 TO 30:NEXT H 
1960 NEXT T»J 

1970 GOTO 210 

1980 UNE(44,20)-(84,35),15,BF:Uf£(44,35)-(84,50),8,BF 

1990 FOR J=1 TO 50: FOR T=i TO 3 

2000 UNE (134, 104) -(137, 107), T,BF 

2010 FOR H=1 TO 30:NEXT H 

2020 NEXT T,J 

2030 GOTO 210 

2040 UNE (44, 20) -(58, 50), 12, BF: UNE (58, 20) -(84, 50), 8, BF 

2050 FOR J=1 TO 50: FOR T=l TO 3 

2060 LINE(27, 163)-(30,166),T,BF 

2070 FOR H=1 TO 30:NEXT H 

2080 NEXT T»J 

2090 GOTO 210 

2100 UNE (44, 20) - (84, 30) , 1,BF: UNE (44, 30) - (84, 40) , 8, BF: UNE (44, 405 - (84, 50) , 10, BF 

2110 FOR J=1 TO 50: FOR T=1 TO 3 

2120 LINE(107,107)-(110,110),T,BF 

2130 FOR H=1 TO 30:íEXT H 

2140 NEXT T,J 

2150 GOTO 210 

2160 UNEU4,20M84,30),l,EF:LIí£(44,30)-ÍS4,40),3,eF:Uí£(44.40)-(84,50),10,8F 

2170 FOR J=1 TO 50:F0R T=i T0 3 

2180 UNE (92, 110)- (95, 113) ,T,BF 

2190 FOR H=1 TO 30: NEXT H 

2200 NEXT T,J 

2210 GOTO 210 

2220 UNE (42, 20) - (56, 50>,4, BF : UNE (56,20) - (70,50) , 10, BF: UNE (70, 20) -(84, 50) , S, BF 

2230 FOR J=1 TO 50: FOR T=1 TO 3 

2240 UNE (155, 137) - ( 158, 140) »T, BF 

2250 FOR H=i TO 30:NEXT H 

2260 NEXT T,J 

2270 GOTO 210 

2280 L1NE(44,20)-(51,33),7,BF:LINE(54,20)-(84,33),7,BF:LINE(44,36)-(51,49) ,7,BF:LINE(54,36)-(84,49) ,7,BF 

2290 LIN£( 44,33) -(84, 36) ,10, BF: UNE (51, 20) -(54, 49) , 10, BF 

2300 FOR J=í TO 50:FOR T=1 TO 3 

2310 LINE(103,72)-(111,75),T,BF 

2320 FOR H=1 TO 30:NEXT H 

2330 NEXT T,J 

2340 GOTO 210 

2350 LINE(44,20>-(84,50),8,BF:LINE(62,25)-(66,45),15,BF:LDE(54,33)-(74,37),15,BF 

2360 HJK J=1 IU 1=1 IU 3 

2370 UNE (86, 122) -(89, 125) ,T,Ef 
2380 FOR H=1 TO 30: NEXT H 
2390 NEXT T,J 
2400 GOTO 210 

2410 UNE (44, 20) - (84, 50) »8,BF: CIR&E (58, 35) , 8, 15, 90*3 .14/ 180, 270*3 . 14/ ISO 

2420 FOR -3=1 TO 50: FOR T=1 TO 3 

2430 UNE { 185, 172)- ( 188, 175) , T, BF 

2440 FOR M TO 30: NEXT H 

245-0 NEXT 7,0 

2460 GOTO 210 

2470 UNE(44,20)-(84,50),8,BF:CIRaE(51,28), 4, 1,270*3.14/180,90*3.14/180 
2480 DRfllfB«56, 32C 1H5NG1NE2" : BRAH*BH4?,31C 161 “ 

2490 FOR J=í TO 50: FOR T=1 TO 3 
2500 UNE 1 186, 77 ) - ( 189, 80) , T, BF 
2510 FOR H=i TO 30SNEXT H 
2520 NEXT T,J 
2530 GOTO 210 

2540 UNE (44, 20) -(84, 30), 4, BF:UNE(44, 30) -(84, 40) ,15, ff: LIME (44, 40) -(84,50) ,8,BF 

2550 FOR J=1 TO 50: FOR 1=1 TO 3 

2560 UNE (119, 143)- (122, 146), T,BF 

2570 FOR H=l TO 30:NEXT H 

2580 NEXT T,J 

2590 GOTO 210 


5.20 


VIDEO BYTE S.R.L. 

H. Yrigoyen 40 

(1 640) Martínez 
Te.: 793-0597 

COMPUTACION LANUS 

Caaguazú 2186 
(1 824) Lanús Este 
Te.: 247-0678 

MANIAC COMP. 

Av. Rivadavia 13734 

(1704) Ramos Mejía 
Te.: 654-6844 

ARGESIS COMP. S.A. 

Meeks 269 

(1832) Lomas de Zamora 
Te.: 243-1742 

FAST 

Catamarca 1755 

(7600) Mar del Plata 
Te.: (023) 43-430 

MICROSTAR S.A. 

Eduardo Costa 892 
(1 640) Acassuso 
Te.: 45-0964 

CERO-UNO 
INFORMATICA S.A. 

Calle 48 N° 529 

(1 900) La Plata 
Te.: (021) 24-9905/9906 
24-9907 

MINICOMP S.R.L 

Maipú 862 

(2000) Rosario 
Te.: (041) 64-447 
63-091 21-1266 





CURSO GRATUITO 


El Club de Usuarios MSX anuncia que 
todo socio o comprador de una compu- 
tadora Talent MSX tiene derecho a un 
curso gratuito sobre Introducción a la • 
computación a dictarse en sus ids- 
talaciones. 



Software disponible para la compra 
presentación en cassettes 


GESTION 


EDUCACIONALES 


CONTABILIDAD 

EUROPA 

AFRICA 

FACTURACION 

AMERICA 

CONTROL DE STOCK 

ASIA 

FICHERO 

FISICA / 

B.G. CALC 

COSMOS 

UTILITARIOS 

INGLES / 
INGLES 1/ 

ENSAMBLADOR 

PRESENTACION 

DESENSAMBLADOR 

MSX-PLAN 

PASCAL 

LOGO 


BANCO DE PROGRAMAS 

Ofrecemos un detalle del Banco de 
Programas que posee el Club, el cual 
podrá ser utilizado por los socios 
(siempre haciéndolo en las instalacio- 
nes del "Centro para el desarrollo de 
la Inteligencia"). 

Obviamente las personas interesadas 
en el uso de los mismos tendrán todo el 
asesoramiento del personal, el cual 
posee un amplio conocimiento en el 
manejo de ese software. 

Software disponible para uso 
interno en el Club 
Banco de Programas 

GESTION 

MSX - Plan (Cartridge) 

Paso - Cale (Diskette) 

UTILITARIOS 

LENGUAJES 

ASSEMBLER 
CMD - ASM (diskette) 

MSX - DUAD (diskette) 

SIMPLE ASSEMBLER (diskette - cassette) 
ZEM - ASSEMBLER (diskette - cassette) 
CMD - CMP (cartridge) 

COMPILADOR BASIC (diskette) 

FORTH (diskette) 

FORTRAN 80 (diskette) 

MSX - C (diskette) 

RM * COBOL (diskette) 

SU PER SOFT - C 80 (diskette) 

SU PER SORT (diskette) 

UPL/SP (diskette) 

EDITORES DE TEXTOS 

JWJ (WORD PRS) (cartridge -(diskette) 

MS - TEXT (diskette - cassette) 

TASWORD (diskette) 

BASE DE DATOS 

D. BASE II (diskette) 

MS - BASE (diskette) 

EDITORES DE MUSICA 

PSG MUSIC EDITOR (diskette) 

HAL (diskette) 

SU PER S/NTET/ZER (diskette) 

EDITORES DE GRAFICOS 

YAMAHA GRAF/C EDITOR (diskette) 

EDUCACIONALES 

LOGO (cartridge) 


e. ?? 



Este programa, preparado por el Club 
de usuarios MSX (Avenida Cabildo 2027 
Capital), se encargará de mantener un 
archivo actualizado de nuestra agen- 
da telefónica. 

Es muy simple y fácil de usar. Permite 
que el archivo se encuentre tanto en 
disco como en cassette. 

Cada registro de éste, está dividido en 
los siguientes campos: 

Apellido, Nombre, Dirección, Locali- 
dad, Código Postal y Teléfono. 

Estos se encuentran perfectamente 
validados (hablando como programa- 
dores expertos). 


AGENDA 


Clase: comercial 



Esto es: cuando entramos los datos, 
no hay posibilidad de que nos permita 
ingresar uno numérico en donde debe 
entrarse uno alfanumérico. 

El menú principal nos ofrece las si- 
guientes opciones: 

1- ALTAS 

2- BAJAS 

3- MODIFICACIONES 

4- LISTADO 

5- GRABAR 

6- CARGAR 

Para mantener este archivo en casse- 
tte, habrá que efectuar algunas modifi- 
caciones en las instrucciones OPEN, 
pues el listado que publicamos está 
preparado para trabajar con la unidad 
de discos. 

Variables importantes 

AR$: Matriz alfanumérica que con- 
tiene todos los registros. 

MA: Valor del último registro entrado. 
A$: Contiene los posibles valores nu- 
méricos de las opciones y/o respues- 
tas S/N. 


10 CLEAR 18000: MAXFILES=2: GOSUB 
430 7 INICI ALI ZAR 
20 MA=0 

30 DIM AR$ (500) 

40 RESTORE 830: GOSUB 440 : LOCATE 
10*0: PR I NT " RE6 I STROS : " : MA ’ GENE 
RA MENU 

50 A*= " 1 23456 " : X=22 : Y=20 : GOSUB 4 
50 7 ACEPTA OPCION 

60 ON VAL ( ) GOSUB 70,120,190,2 
70, 390, 410: GOTO 40 
70 RESTORE 910: GOSUB 440 
80 GOSUB 470: D*=D*+SPACE$ (87-LEN 
(D*) ) 

90 A$="SNsn" : X=21 : Y=1S: GOSUB 450 
: IF B$="N" OR B*="n" THEN GOSUB 6 
90: GOTO 90 

100 GOSUB 540: GOSUB 580 

110 A$="SNsn " : X=21 : Y=21 : GOSUB 45 

O: IF B*="N" OR B*="n" THEN RETURN 


ELSE 70 

120 CLS: LOCATE O, 12, O: PRINT"CUAL 
BORRA?: " : X=12: Y=12: A*=" " : L=25: GO 
SUB 590 

130 FOR A=25 TO 1 STEP -1 = IF MID 
% (C$, A, 1)0" " THEN Q*=MID$(C$, 1, 
A) ELSE NEXT 

140 FOR W=1 TO MA: IF INSTR(1,AR$ 

( W ) , ) =0 THEN NEXT : GOTO 180 
1 50 D$=AR$ ( W ) : RESTORE 1 000 : GOSUB 
440: F=l: LOCATE 10,1: PRINT" BA 

JAS " : GOSUB 760 

160 AS= u SNsn":X=2l:Y=ie: GOSUB 45 
O: IF B*="N" OR B$="n" THEN NEXT: G 


rvrn i p o 

170 FOR A=W 1U M A— 1 : AR$ ( A ) =AR$ ( A 
+1 ) : NEXT: MA=MA-1 : RETURN 
1 SO CLS : BEEP : LOCATE 0,12,0: BEEP : 
PR INT " NO HAY MAS" : BEEP: FOR A=1 TO 
20: BEEP: NEXT: RETURN 
190 CLS: LOCATE O, 12, 0= PRINT"QUE 
BUSCA?: " : X=1 1 : Y=12: A*=" " : L=25= GOS 


UB 590 

200 FOR A=25 TO 1 STEP -1:IF MID 
$(C$, A, 1)0" " THEN Q$=MID$(C$, 1, 
A) ELSE NEXT 

210 FOR W=1 TO MA: IF INSTR(1,AR$ 
(W>,Q$)=0 THEN NEXT: GOTO 260 
220 D$=AR$ ( W ) : RESTORE 1 000 : GOSUB 
440: F=l: GOSUB 760 

230 A$="SNsn" : X=21 : Y=18: GOSUB 45 
O: IF B*="N" OR B$="n" THEN NEXT : G 


OTO 260 

240 GOSUB 690: AR$(W)=D* 

250 A$="SNsn": X=2l:Y=2l: GOSUB 45 
«Q:IF B*="N" OR B$= ,, n" THEN 240 EL 
SE RETURN 

260 CLS: BEEP: LOCATE O, 12, O: BEEP: 
PRINT"NO HAY MAS" : BEEP: FOR A=1 TO 
20 : BEEP : NEXT: RETURN 
270 CLS : PR I NT "TI ENE IMPRESORA (S/ 

N ) : " : X=2 1 : Y=0 : A*= " SNsn " : GOSUB 450 
: IF B$="s" OR B$="S" THEN A=1 ELS 
E A=2 

280 OPEN "LPT : " FOR OUTPUT AS #1 
290 OPEN "CRT : " FOR OUTPUT AS #2 
300 CLS: PRINT #A, CHR* ( 15) ; TAB (50 
)+" LIST ADO OENERAL": PRINT #A,"":P 
RINT # A, "APELLIDO ! NOMBRE 

! DIRECCION 

! LOCALIDAD ! C.P 

. ! TELEFONO !":FOR Q=1 TO MA: D*= 
AR$(Q> : LOCATE 0,7,0 
310 PRINT #A,MID$(D$, 1, 15)+" i " 


320 PRINT #A,MID$(D$, 16,20)+" * 

330 PRINT #A,MID$(D$,36,25)+" ! 
340 PRINT #A,MID*(D*,61, 15)+" ! 

II . 

350 PRINT #A,MID$(D*,76,4)+" ! " 

360 PRINT # A , M I D$ ( D$ , 80 , 8 ) + " ! " 
370 FOR W=1 TO 900: NEXT: NEXT: CLO 
SE: RETURN 
380 RETURN 

390 OPEN "DATOS" FOR OUTPUT AS # 

1 

400 PRINT #1 , MA: FOR A=1 TO MA: PR 
INT #1,AR*(A> : NEXT: CLOSE: RETURN 
410 OPEN "DATOS" FOR INPUT AS #1 
420 INPUT #1 , MA: FOR A=1 TO MA: IN 
PUT #1, AR*(A> :NEXT : GLOSE: RETURN 
430 WIDTH 40: KEY OFF: RETURN 
440 CLS: READ B: FOR A=1 TO B: READ 
X, Y, ZZ$: LOCATE X , Y, O: PRINTZZ*: NE 
XT: RETURN 
450 LOCATE X,Y,1 

460 B$= I NPUT $ ( 1 ) : I F INSTR(1,AS,B 
$)=0 THEN 450 ELSE PRINTB$: LOCATE 
, , O: RETURN 

470 A$=" " : X=1 1 : Y=5: L=15: GOSUB 59 
O: D$=C$ 

480 A$="": X=ll:Y=7: L=20: GOSUB 59 
O: D%=B%+C% 

490 A$=" " : X=1 1 : Y=9: L=25: GOSUB 59 
O : D*=D*+C* 

500 A$=" ": X=1 1 : Y=1 1 : L=15: GOSUB 5 
90:D$=D*+C$ 

510 A*=" 1234567890" : X=1 1 : Y=13: L= 
4: GOSUB 590: D*=D$+C* 

520 A$="- 1234567890" : X=1 1 : Y=15: L 
=8: GOSUB 590: D*=D*+C*+SPACE* (8-LE 
N(C$) ) 

530 RETURN 

540 IF MA=0 THEN MA=i : P0=1 : RETUR 
N 

550 MA=MA+1 : FOR A=1 TO MA-1 
560 IF AR*(A)>D* THEN PO=A:RETUR 
N ELSE NEXT 
570 PO=MA: RETURN 

580 FOR A=MA TO PO STEP— 1 : AR$ ( A+ 

1 ) =AR$ ( A) : NEXT: AR$ (PO) =D$: RETURN 
590 C$=STR I NG$ ( L ? 32 ) 

600 A- 1 

610 LOCATE X, Y,0:PRINTC$; : LOCATE 
X+A— 1 , Y, 1 : B$= I NPUT $ ( 1 ) 

620 IF ((A$="" AND ASC (B*) >31 AN 
D ASC ( B$ ) < > 1 27 ) OR ( INSTR ( 1 , A*, B* 
)wüi> HNU A^=L l HEN LULA I L X,Y,U 
:MID$(C$, A, 1)=B$: A=A+1 
630 IF ASC ( B$) =28 AND ACL+l THEN 
A=A+1 

640 IF ASC (B*) =127 AND ACL+l THE 
N C*=MID*(C$, 1, A-1)+MID$(C$, A+1,L 
—A) +" " 

650 IF ASC <B$) =29 AND A>1 THEN A 
=A— 1 

660 IF ASC ( B$ ) =8 AND A>1 THEN 
=MID*(C*, l,A-2)+MID$(C$, A,L-A+1)+ 

" " ; i 

670 IF ASC (B$) < >13 THEN 610 

680 Q=INSTR(1,C*, " "):IF Q=0 THE 

N LOCATE X, Y,0:PRIÑTC*:RETURN ELS 

E MID$(C*,Q, 1)=" " : GOTO 680 

690 A$=" " : X=1 1 : Y=5: L=15: C*=MID* ( 

D*, 1, 15) :60SUB 600:MID$(D*, 1,15)= 

C$ 

700 A$="": X=ll: Y=7: L=20: C*=MID* ( 


D$, 16,20) : GOSUB 600: MID* (D$, 16,20 
)=C* 

710 A*=" " : X=1 1 : Y=9: L=25: C*=MIB* ( 
D*, 36, 25) : GOSUB 600: MID* (D*, 36, 25 
)=C* 

720 A*="": X=ll: Y=l 1 : L=15: C*=MID* 
(D*,61, 15) : GOSUB 600: MID* (D*, 61 , 1 
5 ) =C* 

730 A*=" 1234567890" : X=1 1 : Y=13: L= 

4 : C*=M I D* ( D* ,76,4) : GOSUB 600: MID* 
(D*,76,4)=C* 

740 A*="-1234567890": X=li: Y=15:L 
=8:C*=MID*(D*,80,8) : GOSUB 600: MID 
* ( D* , 80 , 8 > =C* 

750 RETURN 

760 LOCATE 1 1 , 5, O: PRINTMID* (D*, 1 
, 15) 

770 LOCATE 1 1 , 7: PRINTMID* (D*, 16, 
20 ) 

780 LOCATE 11,9: PRINTMID* (D*, 36, 
25) 

790 LOCATE 11, 11: PRINTMI D* (D*, 61 
, 15) 

800 LOCATE 11, 13: PRINTMID* (D*, 76 
,4) 

810 LOCATE 11, 15:PRINTMID*(D$,80 

, 8 ) 

820 RETURN 

830 DATA 8, 10,3, "MENU PRINCIPAL" 
840 DATA 5,6, "<1> ALTAS" 

850 DATA 5,8, "<2> BAJAS" 

860 DATA 5, 10, "<3> MODIFICACIONE 
S" 

870 DATA 5, 12, "<4> LISTADO" 

880 DATA 5, 14, "<5> GRABAR" 

890 DATA 5, 16, "<6> CARGAR" 

900 DATA 9,20, "OPCION (1-6)?: " 

910 DATA 9, 15, 1, "ALTAS" 

920 DATA 0,5, "APELLIDO : 

930 DATA *0,7, " NOMBRE : 


940 DATA 0,9, "DIRECCION: 

950 DATA O, 11, "LOCALIDAD: 

• II 

960 DATA 0,13, "COD . POS.: : " 

970 t DATA O, 15, "TELEFONO : 

980 DATA 5, 18, "TODO BIEN (S/N) ?: " 
990 DATA 5,21, "MAS ALTAS (S/N) ?: " 
1000 DATA 9, 10, 1 , "MODIFICACIONES 

1010 DATA 0,5, "APELLIDO 

• II 

1 020 DATA *0,7," NOMBRE 
1030 DATA 0,9, "DIRECCION: 

■ ii 

1040 DATA O, 11, "LOCALIDAD: 

1050 DATA Ó, 13, "COD. POS.: : 

1 060 m DATA O, 15, "TELEFONO : 

1070 DATA 5,18, "ES ESTE (S/N)?: 

1080 DATA 5,21, "TODO BIEN (S/N)?: 

1090 DATA O, 7, "NOMBRE :" 

1100 DATA 0,9, "DIRECCION: " 

1110 DATA O, 11, "LOCALIDAD: " 

1120 DATA O, 13, "COD. POS.:" 

1130 DATA O, 15, "TELEFONO : " 



DISEÑADOR DE 



Con este programa 
se grafican circunferen- 
cias, cuadrados y líneas de 
diversos tamaños. También 
se pueden trazar líneas y cur- 
vas como si estuviéramos 
dibujando con un lápiz, per- 
mitiéndonos delinear figu- 
ras con mayor precisión y a 
nuestro antojo. 

Aparte de las ventajas para 
diseñar, contamos con efec- 
tos que nos pueden ayudar a 
dar un toque más atractivo a 
los bosquejos como, por 
ejemplo, cuadricular la pan- 
talla, invertir los colores o 
rellenar figuras irregulares. 

Aclaramos irregulares por- 
que además de la*opción pa- 
ra hacer circunsferencias, 
contamos con la posibili- 
dad de graficar círculos, rec- 
tángulos y elipces rellenas. 
También existe la opción 
que permite dibujar como si 
estuviéramos pintando con 
una fibra con punta chata. 
Este tipo de marcadores da 
una sensación de sombra a 
los trazos. 


Pero a pesar de todas estas 
ventajas, este programa se- 
ría incompleto si no tuviera 
incluido los recursos de car- 
gar y guardar en cassettes, 
como también el permitir la 
salida por impresora MSX 
(para los afortunados que 
tengan este periférico). 
La posición de nuestro "lá- 
piz" está marcada por un 
sprite con forma de cruz. 

El manejo de este programa 
es sencillo y tiene un menú 
que nos explica algunos 
puntos. Por ejemplo, en 
el ángulo superior izquier- 
do, aparecerán graficados 
todos los símbolos corres- 
pondientes a los recursos 
posibles. Para seleccionar 
algún tipo de recurso, posi- 
cionemos el cursor (cruz) 
sobre la opción y luego pre- 
sionemos la barra espada- 
dora. El símbolo corres- 
pondiente a esa opción, se 
dibujará en un casillero blan- 
co. 

Otra posibilidad que conta- 
mos es el "ESPEJO", que 
permite dibujar efectos ca- 
lidoscópicos. 


Estas son las opciones que 
presenta el programa. En- 
tre paréntesis indica el sím- 
bolo que lo representa. 

I - Circunferencia (circun- 
ferencia). 

2- Círculo (círculo). 

3- Línea (regla T). 

4- Pintura — pinta áreas de 
figuras — (rectángulo semi 
pintado). 

5- Pincel (brocha ancha). 

6- Grabar pantalla (S). 

7- Elipse — dibuja este tipo 
de figuras — (elipse). 

8- Elipse rellena (elipse con 
el área marcada). 

9- Lápiz (línea oblicua). 

10- Cuadriculado (rectán- 
gulo cuadriculado). 

I I - Inverso — invierte el co- 
lor de fondo con el de tinta — 
(rectángulo pintado de la 
diagonal para abajo). 

1 2- Carga pantalla (L). 

13- Para abandonar el pro- 
grama (Q). 

14- Cuadrado (cuadrado). 

15- Cuadrado relleno (cua- 
drado con el área pintada). 

1 6- Borra la pantalla para 
volver volver a graficar (rec- 
tángulo con dos diagonales 
marcadas). 

17- Imprime por impreso- 
ra (espacio en blanco). 

1 8- Espejo (rectángulo con 
las diagonales marcadas). 

VARIABLES 

IMPORTANTES 

X: Posición horizontal del 
sprite. 

Y: Posición vertical del spri- 
te. 


TBL: Matriz con código de 


20-50: Pinta como pincel. 
60-1 80: Lee la opción que 
elegimos. 

1 90-230: Visualiza la ima- 
gen de la opción elegida. 
260-31 0: Fin de proceso 
de elección, rutina de dise- 
ño, dibuja círculos, define 
centro y coordenadas. 
330-350: Pregunta si el 
círculo se debe pintar. 
370-460: Dibuja elipse. 
480-490: Pinta elipse. 

51 0-520: Dibuja línea. 
540-550: Pinta área de 
una figura cerrada. 
630-690: Cuadrícula. 
710-780: Invierte colores 
de fondo con el de tinta. 
800: Pincel. 

820-840: Dibuja cuadra- 
dos. 

870-880: Limpia pantalla. 
900-960: Graba pantalla. 
980-1 060: Carga panta- 
lla. 

1 080-1 1 90: Rutina de 
impresión en papel. 

1 21 0-1 220: Abandona el 
programa. 

1240-1310: Inicio del 
programa. 

1340-1720: Dibuja los 

símbolos de las opciones 
en una tabla menú. 
1750-1870: Loop que 
mueve el cursor. 
1890-2290: Inicializa va- 
riables y sprites. 
2300-2610: Presenta ex- 
plicaciones en pantalla. 


10 GOTO 1240 
20 PS=5 

30 IF X+PS>255 THEN PS=PS-1 
40 LINE (X+4,Y+3)-STEP(PS,0> :RE 
TURN 

50 PSET(X+3, Y+4) :PSET(X+3, 195-Y 
) = PSET ( 256- ( X-44 ) , Y+4 ) : PSET ( 256- 
( X— 44) , 195-Y) sRETURN 
60 PLAY "L2405C06C" 

70 IF X+3>47 THEN GOTO 210 

80 IF Y >112 THEN GOSUB 2640: RET 

URN 

90 V=INT( (X+3)/16) :W=INT( (Y+4)/ 
16) 

lOO H=TBL(V,W) 

llO IF H=6 THEN GOSUB 900: GOSUB 
2640: RETURN 

120 IF H=7 THEN GOSUB 2640: RETU 
RN 

130 IF H=1 1 THEN GOSUB 630:G0SU 
B 2640: RETURN 

140 IF H=12 THEN GOSUB 710S60SU 
B 2640: RETURN 

150 IF H=13 THEN GOSUB 980:G0SU 
B 2640: RETURN 


160 IF H=14 THEN GOSUB 1200: GOS 
UB 2640: RETURN 

170 IF H=18 THEN GOSUB 1080: GOS 
UB 2640: RETURN 

180 IF H=19 THEN GOSUB 870:G0SU 
B 2640: RETURN 
190 F=H 

200 GOSUB 2 190: RETURN 
210 ON F GOSUB 260,260,510,540, 
800, , , 370, 370, 560, , , , , 820,820, 86 
0, , ,600 

220 GOSUB 2640 
230 RETURN 
240 7 
250 7 

260 IF CF=0 THEN CF=1 : Cl=X+3: C2 
=Y+4: PUT SPRITE 1 , (Cl-1 , C2-2) , 1 : 
FOR I = 1 TO 8: CSR (1,2) =0 : NEXT : 
RETURN 

270 FOR 1=1 TO 8 : CSR (1,2) =YG ( I ) 

: NEXT 

280 CF=0: PUT SPRITE 1,(0,209),1 
290 IF C 1 -ABS ( X+3— C IX 48 THEN P 
LA Y “ L2402CE " : RETURN 


300 CIRCLE (C1 , C2) , ABS ( X+3— C1 ) , , 

, ,8/7 

310 IF F<2 THEN RETURN 
320 7 

330 IF POINT (C1,C2)=15 THEN PLA 

Y ,, L2403CE*‘: RETURN 

340 PAINT(C1,C2) : RETURN 

350 RETURN 

360 7 

370 IF 0V=0 THEN 0V=1 : 01=X+3: 02 
T,Y*4íPUT SPRITE 1 3>~<01 — 1 , 02 2> , 1 • 
FOR 1=1 TO 8: CSR (I, 2) =0: NEXT: RET 
URN 
380 7 

390 IF 0V=1 THEN 0V=2: R1=ABS (X+ 
3-01): PUT SPRITE 2, ( X+2, Y+2) , 1 , 1 
: X=01— 3: Y=02— 4: FOR 1=1 TO 8:CSR( 
1,2) =YG ( I ) : CSR (1,1) =0 : NEXT s RETUR 
N 

400 R2=ABS ( Y+4— 02 ) : RD=R 1 
410 0V=0 

420 IF R1<R2 THEN RD=R2 

430 FOR 1=1 TO 8 : CSR (1,1) =XG ( I ) 

: NEXT 

440 PUT SPRITE 1 , (O, 209) : PUT SP 


opciones. 

SPRITE O: Cruz. 

ESTRUCTURA 
DEL PROGRAMA 


DA» 0/1 







X UL.^ X 


CE" 5 RETURN 

460 CIRCLE (01,02) ,RD, , , ,R2/R1 
470 * 

480 IF F=8 THEN RETURN 
490 PAINT (01,02) : RETURN 
500 7 

510 IF LF=0 THEN LF=1 : Ll=X+3: L2 
=Y+4: PUT SPRITE 1 , (Ll-1 , L2-2) , 1 : 
RETURN 

520 LINE (Ll,L2)-(X+3, Y+4) s LF=0 
: PUT SPRITE 1, (0,209) : RETURN 
530 7 

540 PAINT (X+3, Y+4) 

550 RETURN 
560 7 

570 SWAP PU, PD 
580 RETURN 
590 7 

600 SWAP MU , MD 
610 RETURN 
620 7 

630 FOR 1=0 TO 192 STEP 8 
640 LINE (48, I ) -STEP (255,0) 

650 NEXT I 

660 FOR 1=48 TO 256 STEP 8 
670 LINE (1,0) -STEP (0,191) 

680 NEXT I 
690 RETURN 
700 7 

710 VDP (7 ) =FC 

720 FOR 1=0 TO 6144 

730 IF VPEEK ( I ) =0 AND VPEEK (BA 

SE ( 1 1 ) +1 ) =FC THEN VPOKE BASE ( 1 1 ) 

+1 , BC: GOTO 760 

740 IF VPEEK ( I ) =0 AND VPEEK (BAS 
E(11)+I)=BC THEN VPOKE BASE ( 1 1 > + 
I , FC: GOTO 760 

750 VPOKE I , NOT (VPEEK ( I ) ) AND 2 
55 

760 NEXT 
770 SWAP BC , FC 
780 RETURN 
790 7 

800 SWAP BU, BD: RETURN 
810 7 

820 IF BF=0 THEN BF=1 : Bl=X+3: B2 
=Y+4: PUT SPRITE 1 , (Bl-1 , B2-2) , 1 , 
1= RETURN 

830 IF F=15 THEN LINE (Bl,B2)-( 
X+3, Y+4) , ,B:BF=0:PUT SPRITE 1,(0 
,209) : RETURN 

840 LINE (Bl,B2)-(X+3, Y+4) , ,BFs 
BF=0: PUT SPRITE 1 , (O, 209) : RETUR 
N 

850 7 

860 SWAP EU,ED: RETURN 

870 L I NE ( 48 , O ) — ( 255 , 191) ,4, BF 

880 RETURN 

890 7 

900 OPEN "CAS 2 PIC" FOR OUTPUT A 
S#2 

910 FOR 1=48 TO 5836 -STEP 256 

920 FOR J=I TO 1+207 

930 PRINT #2, VPEEK (J) ; " , " ; VPEEK 

(8192+J) 

940 NEXT J,I 
950 GLOSE #2 
960 RETURN 
970 7 

980 GOSUB 870 

990 OPEN "CAS: PIC" FOR INPUT AS 
#2 

1000 FOR 1=48 TO 5836 STEP 256 

1010 FOR J=1 TO 1+207 

1020 INPUT #2, VP, VC 

1030 VPOKE J,VP: VPOKE 8192+J, VC 

1040 NEXT J, I 

1050 CLOSE #2 

1060 RETURN 

1070 7 

1080 LPRINT CHR*(27) ; "L"?CHR*(2 
08) ;CHR*(0) 

1090 FOR 1=0 TO 183 STEP 8 
1110 FOR * J=48 TO 255 
1120 B*="" 

1130 FOR K=0 TO 7 

1140 IF POINT ( J, J+K) =FC THEN B* 

=B*+"1» ELSE B*=B*+"0" 

1150 NEXT K 
1160 NEXT J, I 

1170 LPRINT CHR*(VAL("&B"+B*) ) 
1180 7 
1190 RETURN 
1200 7 

1210 COLOR 15,4,4: SCREEN 0,0 
1220 END 


1250 GOSUB 1890 
1260 GOSUB 2300 
1270 BC=4: FC=15 
1280 COLOR FC, BC, BC 
1290 SCREEN 2,0,0 
1300 OPEN "GRP: "AS#1 
1310 GOSUB 2030 
1320 7 
1330 7 

1340 LINE (0,0)— (47 ,111),,B 
1350 FOR 1=15 TO 31 STEP 16 
1360 LINE (1,0)— (I, 111) 

1370 NEXT I 

1380 CIRCLE (8, 8) ,4: CIRCLE STEP ( 
15,0) ,5, , , , 1/2:LINE STEP (12,-4) 
-STEP (7, 7) , , B 

1390 CIRCLE (8, 23) ,BC: PAINT (8, 23 
) : CIRCLE STEP (15, O) ,5, , , , 1/2: LIN 
E STEP (12, —4 ) —STEP (7,7) , , BF : PA I N 
T STEP (—15, —2) 

1400 LINE ( 7 , 36 ) —STEP (0,8) 

1410 LINE (4, 35) —STEP (6,1),, BF 
1420 LINE (21, 36) -STEP (5, 5) 

1430 LINE ( 35 , 35 ) —STEP (8,8) , , B 
1440 LINE (35, 35) -STEP (8, 8) 

1450 L I NE ( 35 , 43 ) —STEP ( 8 , —8 ) 

1460 L I NE (4,51) —STEP (7,4) , , B 
1470 LINE -STEP (-7, 3) , , BF 
1480 FOR 1=15 TO 31 STEP 4 
1490 LINE (1,47) -STEP (O, 15) 

1500 LINE (15, 32+ I ) —STEP (15,0) 
1510 NEXT 

1 520 DR A W " BM35 , 1 1 0R6D6 1 6U6R6D3R 
3D616U3" 

1530 LINE (4, 66) -STEP (6, 3) , ,BF 
1540 L I NE (4,71) —STEP (6,0) 

1550 LINE (6, 73) —STEP (2,3) , , BF 
1560 L I NE (19, 67 ) —STEP (8,8) , , B 
1570 L I NE (19, 67 ) —STEP (8,8) : P A I N 
T STEP (-3,-1) 

1580 LINE (32, 64) -STEP (15, 15) 

1590 L I NE ( 47 , 63 ) —STEP (—15, 15) 
1600 LINE (32,-95) —STEP ( 15, 15) , , B 
F 

1610 PSET (6, 84) : PRINT#1 , "S" 

1620 LINE (35, 83) -STEP (8, 8) , ,B 
1630 LINE (39, 83) -STEP (O, 8) 

1640 LINE (35, 87) -STEP (8, O) 

1650 PSET (21,1 00 ) : PR I NT # 1 , " Q " 
1660 PSET (21, 84 ) : PR I NT # 1 , " L " 

1670 7 

1680 X=48: Y=96: PU=— 1 : PD=0: EU=— 1 
: ED=0 : BU=- 1 : BD=0 : MU=- 1 : MD=0 
1690 STRIG(O) ON:ON STRIG GOSUB 
60 

1700 RESTORE 2130 

1710 FOR 1=1 TO 8: FOR J=1 TO 2 

1720 READ A: CSR ( I , J) =A: NEXT J, I 

1730 7 

1740 7 

1750 PUT SPRITE O, (X, Y), 1,0 
1760 IF PD AND X>47 THEN PSET ( 
X+3, Y+4) 

1770 IF ED AND X>47 THEN PRESET 
(X+3, Y+4) 

1780 IF BD AND X>47 THEN GOSUB 
20 

1790 IF MD AND X>47 THEN GOSUB 
50 

1800 IF STICK (O) =0 THEN 1800 
1810 PUT SPRITE O, (X, Y), 1,0 
1820 X=X+CSR (STICK (O) , 1 ) : Y=Y+CS 
R (STICK (O) ,2) : 

1830 IF X<— 3 THEN X=-3 
1840 IF X >252 THEN X=252 
1850 IF Y>187 THEN Y=187 
1860 IF Y<— 3 THEN Y=-3 
1870 GOTO 1750 
1880 7 

1890 RESTORE 2130 
1900 DIM CSR (8, 2) 

1910 DIM TBL (3,7) 

1920 DIM ER (8,8) 

1930 DIM YG (8) , XG(8) 

1940 FOR 1=1 TO 8 
1950 FOR J=1 TO 2 
1960 READ A : CSR ( I , J ) =A : I F JM0D2 
=0 THEN YG ( I ) =A ELSE XG ( I ) =A 
1970 NEXT J,I 
1980 FOR 1=0 TO 2 
1990 FOR J=0 TO 6 
2000 READ TBL ( I, J) : NEXT J, I 
2010 RETURN 
2020 7 

2030 RESTORE 2160 
2040 FOR K=0 TO 1 


2070 READ A: SS=S*+CHR* ( A) 

2080 NEXT 

2090 SPRITE* (K)=S* 

2100 NEXT K 
2110 RETURN 
2120 7 

2130 DATA 0,-1, 1,-1, 1,0, 1, 1,0, 1 
,” 1 , 1 ,— 1 , 0 ,— 1,— 1 
2140 DATA 1,2,3,4,5,6,7,8,9,10, 
11,12,13,14,15,16,17,18, 19,20,21 
2150 7 

2160 DATA 16,16,16,195,16,16,16 
,0 

2170 DATA 64,224,64,0,0,0,0,0 
2180 7 

2190 IF F=21 THEN RETURN 
2200 BF=0 : CF=Q : O V=0 : LF=0 
2210 PUT SPRITE 1 , (O, 209) : PUT S 
PR I TE 2, (0,209) 

2220 V1=V*16: W1=W+16 

2230 FOR 1=1 TO 14 

2240 FOR J=1 TO 14 

2250 IF F’OINT ( Vl+1 , Wl+J ) =Bb I Hb 

N C=FC ELSE C=BC 

2260 PSET (32+1, 96+ J) ,C 

2270 NEXT J, I 

2280 GOSUB 2640 

2^90 RETURN 

2300 7 

2310 7 

2320 7 

2330 SCREEN 0,0:KEY OFF 
2340 PRINT TAB(5>;"/// SISTEMA 
DE DISE"+CHR* (&HA5) +" 10///" : PRIN 
T: PRINT 

2350 PRINT TAB(l) 5 "SELECCIONE L 
A OPCION" 

2360 PR I NT T AB ( 1 ) ; " POS I C I ON ANDO 
EL CURSOR SOBRE LA" 

2370 PRINT TAB(l) ; "OPCION DEL M 
ENU Y PRESIONE LA BARRA": PRINT T 
AB ( 1 ) ; "DE ESPACIO": PRINT 
2380 PRINT" 1 . CIRCULO: Pres. es 
pació p/ definir": PRINT TAB(12)" 
centro, nuevamen t e PRINT TAB(12 
) "espacio p/ definir rad.y":PRIN 
T TAB ( 12 ) "d i se"+CHR* (&HA4) +"ar " 

2390 PRINT "2 . CIRCULO Como 

ar r i ba" 

2400 PRINT "3. LINEA: Pres. esp 
acio p/ iniciar la": PRINT TAB (10 
) "linea, pres. espacio de":PRINT 
TAB(IO) "nuevo p/ d i se "+CHR* (&HA 
4) +"arl a" 

2410 PRINT "4 . PINTA: Pre s.espac 
io p/ pintar el":PRINT TAB(10)"a 
rea" 

2420 PRINT "5. PINCEL: Pres . espa 
cío p/ d i se "+CHR* (&HA4) +"ar . " 
2430 PRINT " 6 . SAVE(S): Salva e 
n cinta." 

2440 PRINT: PRINT" Mas..." 

2450 R*=INKEY*:IF R*="" THEN 24 
50 

2460 CLS 

2470 PRINT "7. ELIPSE: como CIR 
CULO, mas de f i n i r " : PRINT TAB ( 1 1 ) 
¿"radio también." 

2480 PRINT " 8 . ELIPSE RELLENA: 
como ar r i ba . " 

2490 PRINT"9 . LAPIS: Como PINCE 
L" 

2500 PRINT" 10. CUADRICULADO: Di 
s e " +CHR* ( &HA4 )+"ar cuadricula" 
2510 PRINT"! 1. REVES: Revierte 
color de fondo":PRINT TAB(ll)"co 
n el de tinta. " 

2520 PRINT" 12. LOAD: Carga grav 
ación desde cinta." 

2530 PRINT "13. CUADRADO: Como 
para linea" 

2540 PRINT" 14. CUADRADO... Como 
ar r i ba" 

2550 PRINT" 15. BORRAR: Como par 
a LAPIS." 

2560 PRINT "16. IMPRIMIR : Saca 
por impresora" 

2570 PRINT" 17. LIMPA PANTALLA" 
2580 PRINT" 18. ESPEJO: Como par 
a LAPIS" 

2590 PRINT : PRINT" E j ecutar " 

2600 R*=INKEYí: IF R*="" THEN 26 
00 

2610 RETURN 

2640 RESTORE 2130 

2650 FOR 1=1 TO 8 : FOR J=1 TO 2 

2660 READ A: CSR ( I , J) =A: NEXT J, I 

2670 RETURN 


MLIVU UHUL 




PROGRAMACION 

APLICADA 


La mejor forma de aprender BASIC 
es ir programándolo a medida que lo 
necesitemos. 



Primero sería conveniente interiorizar- 
nos en el tema sobre el que vamos a 
programar. 

Una vez que tengamos conocimiento 
de los puntos más importantes del 
problema que la máquina nos ayudará 
a resolver, anotemos por orden de im- 
portancia cuáles son los enigmas que 
solucionará el programa. 

Propongamos un ejemplo y programé- 
moslo. Supongamos que queremos 
estudiar los verbos. Entonces primero 
sería conveniente repasar un poco es- 
te tema y rescatar los puntos principa- 
les. Sabemos que existen dos clases 
de verbos: irregulares y regulares. Ha- 
gamos un programa para los verbos 
que pertenecen a este último grupo. 
Los verbos se conjugan según el mo- 
do, tiempo, persona y número. 

Los verbos en infinitivo pueden termi- 
nar en "ar", "er" o "ir". 

Los terminados en "ar" pertenecen a la 
"primera conjugación", los termina- 
dos en "er" a la "segunda conjuga- 
ción", y los que terminan en "ir" a la 
"tercera". Lo más importante de tener 
en cuenta es que los verbos regulares 
de la primera conjugación, tienen las 
mismas terminaciones. 


Supongamos que nuestros intereses 
primordiales son: 

- Explicación básica sobre los verbos 
con preguntas sobre lo enseñado. 

- Conjugación de un verbo regular. 

Al ser estas dos tareas diferentes, ha- 
brá que tratarlas por separado. 
Realicemos un diagrama (de bloque) 
para desarrollar un poco más cada una 
de las opciones que marcamos arriba. 
En la figura 1 se muestra el diagrama 
de bloques para la primera opción; 
mientras que en la figura 2 aparece el 
diagrama para la segunda. 
Recordemos entonces que los diagra- 
mas de bloques muestran en forma ge- 
neral, las operaciones a realizar por 
el programa. 

Comencemos por la primera opción, 
que abarca el tema de la explicación 
sobre las propiedades verbales. 

En esta parte habrá que entrar en la 
computadora toda la información que 
esperamos ver luego a modo de expli- 
cación. 

Cuando comencemos a programar, 
tratemos de colocar mensajes aclara- 
torios en el listado para que cuando los 
leamos, identifiquemos inmediatamen- 
te qué hace la porción de jeroglíficos 
que leemos. La instrucción REM o el 
apostrofe, permite colocar mensajes 


aclaratorios en el listado sin afectar e¡ 
programa. Es decir que la computado- 
ra no "leerá" nada que haya detrás del 
REM o del apostrofe. 

Copiemos la línea 10 de la figura 3: 
10 REM EXPLICACIONES DE LOS 
VERBOS. 

Habíamos propuesto que salgan por 
pantalla las explicaciones sobre los 
verbos. Pero antes de mostrar por 
pantalla algún mensaje, es convenien- 
te asegurarnos que la pantalla esté 
limpia para que no se mezcle con nues- 
tros mensajes. Entonces busquemos 
en el manual de la computadora algu- 
na instrucción que despeje el "piza- 
rrón". 

La instrucción CLS limpia la pantalla. 
Entonces, ésta va a ser la primera ins- 
trucción del programa. 

En las MSX, en la parte inferior del mo- 
nitor aparecen escritos los comandos 
que realizan las teclas de función. Pa- 
ra borrar estas impresiones (porque 
nada tienen que ver con nuestro pro- 
grama) usemos KEY OFF. 

Otro "chiche" para programar, es 
escoger un color de fondo y otro de 
tinta para que los mensajes aparezcan 
i nuestra vista con algún efecto atrac- 
tivo. 

Con COLOR A,B escogemos como co- 
lor de tinta a A y de fondo o papel a 
B. 

Podríamos pedir verde oscuro como 
color de tinta y negro para el papel. 
Tipiemos la segunda línea del progra- 
ma que es la número 20 de la figura 
3. 

¿Qué nos va a explicar el pro- 
grama? 

Primero nos dirá cuáles son los acci- 
dentes verbales y luego irá desarro- 
llando cada uno de ellos. Con PRINT 
"cadena de caracteres" imprimimos 
en la pantalla desde el primer renglón 
superior o debajo del último mensaje 
Que apareció en la pantalla, todos los 
caracteres encerrados entre comillas. 
Es hora de copiar la línea 30. Aquí, en- 
tre los dos puntos ":" y la "M" hay 
ocho espacios en blanco. Esto se debe 
a que en la pantalla, de la forma que es- 
tamos trabajando, sólo entran 37 ca- 
racteres a lo ancho. Desde el primer 
espacio er> blanco después de las co- 
millas, hasta los dos puntos (:) inclusi- 
ve, hay 29 lugares, entonces con 8 
espacios más, habría 38. O sea, pasa- 
ríamos a la primera columna del si- 
guiente renglón. 

Desarrollemos cada uno de los cuatro 
accidentes verbales, comenzando por 
MODO. 

PRINT sin nada entre comillas deja un 
renglón en blanco. 

Copiemos la línea 40. Las cuatro co- 
mas que aparecen entre las comillas 
(estas no encierran las comas sino que 


pertenecen a las comillas de cierre y 
apertura de una cadena de caracteres) 
dejan un renglón en blanco. Esto equi- 
valdría a decir una vez PRINT; pero es- 
to lleva más tiempo que escribir sólo 
4 comas. 

Una vez aclarado el significado de la 
primera propiedad, entremos los dis- 
tintos modos que existen. Podemos 
entrar ahora la línea 50. 

A cada explicación es conveniente que 
la acompañe un ejemplo. 

^PRINT TAB(n) “cadena de caracte- 
res", comenzará a imprimir los carac- 
teres entre comillas a partir de la co- 
lumna n, contando a partir de la izquier- 
da. Tipeemos la línea 60. 

La número 70 no trae nada nuevo y es 
claro que imprime en pantalla... la de- 
finición del SUBJUNTIVO, jmuy bien!! 
Antes de seguir, contemos cuantos 
renglones ocupamos en la pantalla. 
Son en total 1 8, nos quedan sólo 5 dis- 
ponibles. 

Entonces imprimamos algo más pero 
reservemos las dos últimas líneas de la 
pantalla para mensajes aclaratorios. 
Se pueden imprimir la cantidad de 
mensajes que querramos, pero no es 
conveniente superar los 24 renglones 
(una pantalla) porque si ésto sucede, 
las líneas subirán escapándose de 
nuestra visión sin permitirnos enten- 
der lo que contenían. Entonces cada 
vez que hayamos terminado de impri- 
mir la pantalla, imprimiremos un men- 
saje: "PRESIONE ALGUNA TECLA 
PARA CONTINUAR" y luego volva- 
mos al asunto que estábamos aten- 
diendo antes del cartel aclaratorio. 

La instrucción GOSUB n, hace que el 
programa al llegar a esta orden, salte 
hasta la línea n, realice todas las ope- 
raciones que hay hasta encontrar una 
orden RETURN. Cuando un RETURN 
es hallado, la máquina vuelve a la si- 
guiente instrucción del GOSUB n. En- 
tremos la línea 80. Aquí, se imprime un 
ejemplo y luego saltamos a la línea le- 
jana, como podría ser la línea 590. En 
ésta, pedimos que el cursor se ubique 
en la columna cero (la primera); línea 
22 y luego que imprima una aclaración. 
Pero aún no hemos puesto el RETURN 
porque queremos que haga algo más. 
En la línea 600 decimos que 
si no hay ninguna tecla presionada en- 
UN 

IF INKEY$="" 


torces vuelva 

< ^ 

THEN 

que limpie la pantalla y 


a la línea 600, sino 


ELSE 
luego que 


CLS 

vuelva a la siguiente instrucción des- 


RETURN 

de donde se desvió. 

« ^ 


Aquí vimos algunas cosas nuevas co- 
mo la instrucción IF... THEN... ELSE. 
Esto se lee así: si (IF) pasa tal cosa, en- 
tonces (THEN) hacer ésto, sino (ELSE) 
hacer esto otro. 

Los dos puntos separan instruccio- 
nes, ésta evita que tengamos que es- 
cribir una instrucción por renglón (fi- 
gura 4). 

INKEY$= lee el carácter que se pre- 
sionó desde el teclado. Las dos comi- 
llas seguidas significa que no se tocó 
ninguna tecla. 

Una vez que encontró el R ETU R N, vuel- 
ve, en nuestro caso, a la línea 90 por- 
que es la siguiente instrucción des- 
pués del GOSUB 590. 

Seguimos entrando información y ejem- 
plos sobre los modos verbales y sin na- 
da nuevo hasta la línea 120 inclusive. 
Al terminar con un ítem, lo mejor es 
averiguar si se entendió, copiemos 
la línea 130. 

En la 1 40 comenzamos con una peque- 
ña batería de preguntas. En la línea 
150 volvemos a usar el recurso GO- 
SUB pero esta vez nos vamos a la lí- 
nea 610. 

Aquí imprimimos los modos que expli- 
camos y pasamos a la línea siguiente, 
la 620; donde preguntaremos con un 
INPUT el número que escogemos co- 
mo respuesta. La instrucción INPUT 
"mensaje" ;X (basta con fijarse en el 
manual de la computadora para ma- 
yor información de esta sentencia) 
acepta un valor para la variable X. Des- 
pués del INPUT, hay un RETURN, en- 
tonces volvemos a la línea 160. En 
esta línea decimos que si 

^Tf* 

nuestra respuesta fue 3 entonces 
^ * 
X=3 THEN 




Presentación 
de pantalla 
con menú de 
opciones 


I 


Conjuga 

verbo 

en indicativo 

I- 


Conjuga 

verbo 

en subjuntivo 

: — i 


Conjugación 
para el 
potencial 

r_ j _ 


Conjugación 

para 

imperativo 


Figura 2 


Figura 1 


pasemos (sin volver) a la línea 180. 
>Ss -— ■ - ^ 

GOTO 180 

Observemos que la diferencia que 
existe entre GOTO y GOSUB es que la 
primera salta hasta una línea determi- 
nada pero no vuelve como el GOSUB. 
Entonces no hace falta usar el GOTO 
con un RETURN. 

También puede suceder que nuestra 
respuesta no sea 3. En ese caso, la si- 
guiente instrucción después del IF... 
THEN, en nuestro programa, pasa a la 
línea 170, donde aclaramos con soni- 
do (BEEP) y un mensaje, que hemos 
fallado en la contestación. Salta nue- 
vamente a la línea 590. Cuando en- 
cuentre un RETURN pasa a la instruc- 
ción siguiente al GOSUB, o sea, GO- 
TO 30. Ahora la computadora pasa a la 
línea 30 que es el principio de la expli- 
cación de los verbos. 


En la 1 80 damos otra pregunta. En la 
1 90 decimos que si elegimos la opción 
1, pasamos a la tercera pregunta pero 
si fallamos, volvemos a comenzar la 
explicación. Así sigue hasta la línea 
270. Acá explicamos otro ítem: el tiem- 
po verbal. En las dos líneas siguientes 
mostramos ejemplos. A partir de la 
300, volvemos a transformarnos en 
verdugos examinadores porque co- 
menzamos nuevamente a tomar lec- 
ción. Las respuestas se reducen en 
contestar SI o NO. Entremos hasta la 
linea 320. Preguntamos, y si nuestra 
respuesta no es "SI" o "si", entonces 
volvemos a comenzar la explicación 
del tiempo. 

Figura 4 

ÍO CLS ~1 

20 PRimj- 10 CLS SPRINT 









En la 330 hacemos otra pregunta y 340 
es la verificación de nuestra respues- 
ta. Sigue igual, sin nada nuevo, hasta la 
línea 390 donde pedimos limpiar la 
pantalla y dar la definición de "perso- 
na"; otro ítem de los accidentes ver- 
bales. 

A partir de aquí no existe nada nuevo. 
Sólo usamos PRINT, IF... THEN, GO- 
SUB y GOTO. 

En lá línea 400 damos los ejemplos de 
personas, en la 410 definimos "núme- 
ro'6 para las propiedades verbales. 
Desde 420, hasta la línea 510, hace- 
mos preguntas. 

En la línea 530 hasta la 570 damos al- 
gunas definiciones más sobre verbos, 
pero, sin hacer preguntas. En la 580 
aclaramos que se acabó la enseñanza y 
volvemos al menú. Las líneas 590 has- 
ta 620 ya las comentamos. 

¿Qué hace falta decirle a la 
computadora para que conju- 
gue un verbo? 

Vamos a realizar la segunda parte del 
programa. 

¿Qué pretendemos que haga la com- 
putadora en esta parte? 

Nos tendría que pedir un verbo y fijar- 
se a qué conjugación corresponde. 
Luego preguntarnos en qué modo y 
tiempo queremos conjugarlo. En la fi- 
gura 2 presentamos este diagrama de 
bloques. 

Como primera instrucción de esta par- 
te, también va a ser un CLS, porque 
nos aseguraremos así, que la pantalla 
no tenga "basura" que obstaculice la 
lectura de los mensajes de esta por- 
ción del programa. 

Los números de línea no tienen porque 
seguir en forma creciente a la porción 
del programa anterior, pero sí es im- 
portante que los valores de las líneas 
no coincidan. Por ejemplo, comence- 
mos desde la línea 1000. Copiemos a 
partir de la línea con este número del 
listado de la figura 3. 

En la segunda línea pedimos la entra- 
da de un verbo en infinitivo. 

La línea 1 030 es interesante pues se- 
paramos del verbo entrado, la raíz de 
la terminación. 

Sabemos que la terminación, son sólo 
las dos últimas letras. Entonces, con la 
instrucción necesitaríamos una ins- 


10 REM EXPLICACION DE LOS VERBOS 
20 CLS= KEY OFF: COLOR 12,1 
30 PRINT" Los accidentes verbale 
s son: , MODO, TIEMPO, PERSO 

NA y NUMERO." 

40 PRINT: PRINT"MODO" , ,,, " Indica 
las distinta antitudes gu 

e habla:" 

30 PRINT: PRINT: PRINT"- INDICATIV 
O: expresa como real el signi 

ficado del verbo." 

60 PRINT: PRINT TAB (5) "El cartero 
llamó a mí puerta." 

70 PRINT: PRINT »- SUBJUNTIVO: ex 
presa un deseo o una duda." 

80 PRINT: PRINT TAB(5)"Que el car 
tero llame a mi puerta": GÜSUB 59 


trucción que tome las dos últimas le- 
tras. La instrucción MID$(X$,A,B) to- 
ma de la cadena de caracteres X$, los 
caracteres entre A y B. 

Por eso, en la línea 1030, RAIZ$ repre- 
senta a la raíz del verbo entrado y TER- 
Ml$ a la terminación de dicho verbo. 
¿Qué significará la instrucción IF A OR 
B THEN...? Con sólo traducirla del in- 
glés, significa que si pasa A o si pasa B, 
entonces... Esta instrucción se utiliza 
en la líne 1035 para distinguir a qué 
grupo pertenece el verbo entrado; si a 
los de primera conjugación, segunda 
o tercera. 

Los datos que van a ser leídos por el 
programa, pero que no hagan falta en- 
trar desde el teclado, se guardarán en 
sentencias DATAs. En los programas 
puede haber varias de estas senten- 
cias de almacenamiento de datos. 
Con la instrucción READ A$ de la lí- 
nea 1038 lee un dato de estas senten- 
cias DATA. Pero la lectura es secuen- 
cial, es decir que para leer el décimo 
dato habrá que leer o saltar los nue- 
ve anteriores. 

En la línea 1037 encontramos la ins- 
trucción RESTORE 1039, que indica a 
la computadora posicionarse en la lí- 
nea 1039 para leer datos. ¿Pero, por 
qué hace falta agragar esta instruc- 
ción? 

Pues si el último dato leído fue, por 
ejemplo el quinto de la línea 1235 en- 
tonces al encontrar un READ leerá a 
partir del secto de la línea 1235. 

En la línea 1038 encontramos la ins- 
trucción RESTORE 1039, que indica a 
la computadora posicionarse en la lí- 
nea 1039 para leer datos. 

¿Por qué hace falta agregar esta ins- 
trucción? 

Porque si el último dato leído fue por 
ejemplo el quinto de la línea 1235 en- 
tonces al encontrar un READ leerá a 
partir del sexto dato de la línea 1235. 
En la línea 1038 la instrucción FOR 
F=1 T0 6 ... NEXT ordena que se ejecu- 
ten 6 veces las instrucciones que se 
hallan entre el FOR y el NEXT. 

La definición de esta instrucción es: 
FOR N=A TO B STEP C... NEXT. Esto 
quiere decir que se realizarán las ins- 
trucciones entre el FOR y el NEXT 
todas las veces que sean necesarias 
para que N (con valor inicial A), incre- 

o 

90 PRINT: PRINT "- POTENCIAL: exp 

resa posibilidad." 

100 PRINT : PRINT TAB(5)"E1 cárter 
o llamaría a mi puerta." 

110 PRINT: PRINT IMPERATIVO: e 
xpresa pedido, orden, invitació 
n o consejo" 

120 PRINT : PRINT TAB(5)"Que llame 
, el cartero, a mi puerta.": GOSU 
B 590 

130 PRINT" Veremos si entendió lo 
que vimos recién" 

140 PRINT: PRINT "A qué modo corr 
esponden las siguien- tes oración 
es: •• 

150 PRINT: PRINT: PRINT TAB (5) "* 


mentándose C unidades, alcance o su- 
pere el valor de B. Esto, en computa- 
ción se denomina "loop". La variable 
PER$(n) en realidad es un arreglo que 
almacena los valores leídos de la lí- 
nea 1039 por el READ. 

La línea 1050 nos pide una respuesta 
desde el teclado que puede ser un nú- 
mero entre 1 y 4 inclusive. 

En la 1060 decidimos que si nuestra 
respuesta fue 1, pasaremos a la línea 
1070, si fue 2 a la 1310, si en cambio 
fue 3 a la 1 450, pero si contestamos 4, 
pasamos a la línea 1540. 

Para realizar ésto, usamos el recurso 
ON N GOTO A,B,C... porque según 
sea el valor de N, salta a la línea A,B 
ó C. 

Ya nos quedan pocas cosas por apren- 
der. Por último vamos a ver algunos se- 
paradores de campo de la instrucción 
PRINT. 

Vimos que las comas en un PRINT per- 
miten comenzar en la primera columna 
o en la décimo quinta; éste es un sepa- 
rador de campo. 

Otro es el punto y coma (;): indica que 
la siguiente impresión se efectuará pe- 
gada a la última realizada. Otro sepa- 
rador que realiza la misma operación 
es el signo "+", pero ésta se utiliza en- 
tre variables caracteres. Por ejemplo, 
PRINT A$+B$ imprimirá A$ y pegado 
imprimirá B$. Pero PRINT A+ imprimi- 
rá el resultado de sumar A con B. 

El resto del programa no contiene ins- 
trucciones nuevas. 

Pero sólo tenemos dos partes del pro- 
grama y están "desconectadas". Con 
las líneas 700-990 unimos ambas ruti- 
nas sin usar instrucciones desconoci- 
das. 

Al programa se le pueden agregar infi- 
nitas variantes, pero las dejamos libe- 
radas a la imaginación del lector. Co- 
mo sugerencia, decimos que se le po- 
dría agregar la conjugación de algunos 
verbos irregulares como SER y ESTAR. 
Recomendamos mantener los núme- 
ros de líneas porque en números suce- 
sivos ampliaremos el programa. 

Una vez que tengamos copiado todo el 
listado de la figura 3, en ves de hacerlo 
correr con RUN, demos la orden con 
GOTO 700. 

Esta instrucción indica que el comien- 
zo del programa es la línea 700. 


Claudio escribiría una poesía":G0 
SUB 610 

160 IF X=3 THEN GOTO 180 
170 BEEP: PRINT"Cr eo que no enten 
dió bien la expl i ca-c i ón, volvamo 
s a leerla. Su respuestafue erron 
ea, era en el modo POTENCIAL" : GOS 
UB 590: GOTO 30 

180 PRINT: PRINT: PRINT TAB (5) "* 
Claudio escribió una poesía": GOSU 
B 610 

190 IF X=1 THEN GOTO 210 
200 BEEP: PRINT"Será mejor que vo 
lvamos a leer la ex— plicación por 
que la respuesta correcta 

era INDICATIVO .": GOSUB 590: GOTO 
30 



210 PRINT: PRINT: PRINT TAB (5) "* 
Escribe? Claudio? una poesía":GOS 
UB 610 

220 IF X=4 THEN GOTO 240 
230 BEEP: PRINT "Su respuesta no e 
s satisfactoria? erael modo IMPER 
ATIVO. Volvamos a leer la explic 
ac i ón ."SPRINT : GOSUB 590: GOTO 3 

0 

240 PRINT: PRINT: PRINT TAB (5) "* 
Que Claudio escriba una poesía" :G 
OSUB 610 

250 IF X=2 THEN PRINT: PRINT: GOSU 
B 590: GOTO 270 

260 BEEF*: PRINT "Lást i ma que se ha 
ya equivocado a estaal tura? pero 
la respuesta correcta era SUBJU 
NTIVO. Tendrá que volver a leer 
la explicación-": PRINT: GOSUB 59 
O: GOTO 30 

270 PRINT "TIEMPO" ? ? ? ? " Indica cu 
ándo se cumple la acción verba 

1 : " 

280 PRINT : PRINT"- Tiempos SIMPL 
ES: presente perfecto? pretérito 

i mp erfecto? pretérito i n d e f 

inido? futuro imperfecto" 

290 PRINT: PRINT"- Tiempos COMPU 
ESTOS: pretérito perfecto? 

pretérito anterior? preté 

rito plMscuanper f ecto? futuro p 
erfecto": GOSUB 590 

300 PRINT"Llegó el momento de sa 
ber si aprendiólo que le acabo de 
explicar-": PRINT 
310 INPUT"* Es el PRETERITO 1NDE 
FINIDO simple. <S/N)";X* 

320 IF X*<>"s" AND X*<>"S" THEN 
PRINT"Preste mas atención? volver 
é a expl i -cársel o - " : GOSUB 590: GÜ 
TO 270 

330 PRINT: INPUT"* Es compuesto e 
1 FUTURO IMPERFECTO. <S/N)";X* 
340 IF X*<>"N" AND X*<>"r«" THEN 
PRINT“Pr es t e mas atención- volver 
é a e xpl i -cársel o .": GU8UB 5vo: taU 
TO 270 

350 PRINT: INPUT"* Es compuesto e 
1 PRETERITO ANTERIOR. CS/N>"?X* 
360 IF X*<>"s" AND X*<>"S" THEN 
PRINT"Preste mas atención? volver 
é a e xpl i -cársel o .": GOSUB 590= GO 
TO 270 

370 INPUT"* Es el PRETERITO PLUS 
CUANPERFECTO compuesto. (S/ 

N) X* 

380 IF X*< >"s" AND X*<>"S" THEN 
PRINT"F*reste mas atención? volver 
é a expl i -cársel o GOSUB 590: GO 
TO 270 

390 CLS: PRINT "PERSONA" ? , , , " Indi 
ca quién realiza la acción 
verbaly puede ser: " 

400 PRINT: PRINT" 1- yo"?"l- noso 
tros"? "2— tú" ? "2- voso t ros" ? "3- é 
1 " ? "3- el 1 os" 

410 PRINT: PRINT: PRINT "NUMERO" , , 

? ? " Indica si el verbo se refiere 
a uno o a muchos? SINGULAR o PL 
URAL res- pee t i vamen t e . " : GOSUB 
590 

420 PRINT "Haré algunas pregunta 
s para seber si entendió este úl t 
i mo pun t o . " 

430 INPUT " *Cuál es la primera 
persona del s i ngul ar " ; X* 

440 IF X*<>"YO" AND X*<>"yo" THE 
N PRINT"Será mejor que le vuelva 
a explicar esto último porque pa 
rece que no me entend i ó . ": GOSUB 
590: GOTO 390 

450 INPUT " *Cuál es la tercera 
persona del sinqular"; X$ 

460 IF X*<>"él" AND X*<>"EL" THE 
N PRINT"Será mejor que le vuelva 
a explicar esto último porque pa 
rece que no me en t end i ó - " : GOSUB 
590: GOTO 390 

470 INPUT " *Cuál es la segunda 
persona del plural";X* 

480 IF X*<>" voso tros" AND X*<>"V 
0S0TR0S" THEN PRINT"Será mejor qu 
e le vuelva a explicar esto úl t i 
mo porque parece que no me enten 
d i ó . " : GOSUB 590: GOTO 390 
500 INPUT " *Cuál es la tercera 
persona del plural ";X* 

510 IF X$< >" el 1 os" AND X*O"ELL0 
S" THEN PRINT "Sera mejor que le v 


uelva a explicar esto último por 
que parece que no me entendió-": 
GOSUB 590: GOTO 390 
520 CLS: PRINT" Al conjugar un ver 
bo se lo debe deciren forma orden 
ada en los distintos modos? tie 
mpos? personas y números." 

530 PRINT: PRINT"Los verbos se c 
lasifican según sus conjugación 
es y esto depende de las termina 
ciones verbales." 

550 PR I NT : F’R I NT " CON JUGAC I ONES " ? " 
TERM I N AC I ONES " : PR I NT 
560 PRINT" pr i mera" ? " AR"? "según 
da"?" ER" ? "tercera"? " IR" 

570 PRINT: PRINT"Como por ejemplo 
los verbos amAR? tenER y part 

IR que corresponden a la primera? 

segunda y tercera conju- qac i 
ón r esoec t i vamen t e .": GOSUB 59Ó 
580 LOCATE 0? 13: PRINT "Aquí ter 
minó la explicación de los verb 
os.": GOSUB 590: GOTO 700 
590 LOCATE 0,22: PRINT "Presione 
alquna tecla para continuar" 

600’ IF INKEY*=" " THEN 600 ELSE C 
LS: RETURN 

610 PRINT: PRINT "1- Indicativo" 

, "2- Sub j unt i vo" ? "3- Potencial"?" 
4- Imperativo" 

620 INPUT "Qué numero elige: " ; X 

: RETURN 

700 CLS : KEY OFF: COLOR 10,1 

710 LOCATE 0,8: PRINT "1- Explica 

c i on . 

720 LOCATE 0?10:F*RINT "2- Conjug 
ación. " 

980 LOCATE 0,22: INPUT "SU ELECC 

ION " ; ELEC 

990 ON ELEC GOTO 10,1000: GOTO 70 

0 

1000 REM CO JUGAR VERBOS 
1010 CLS 

1020 INPUT" Entre el verbo que qu 

1 ere conjuqar " ; X* 

1025 IF X*="FIN" OR X*="fin" THE 
N GOTO 700 

1030 RAIZ*=MID*(X*, l?LEN(X*>-2) : 
TERMI*=MID* (X*? LEN (X*) -2+1 ? LEN (X 
*> ) 

1035 IF TERMI*="AR" OR TERMI*="a 
r" THEN T=1 ELSE IF TERMI*="ER" O 
R TERMI*="er" THEN T-2 ELSE T=3 

1036 IF T=1 THEN T*="ado" ELSE T 
*=" i do" 

1037 RESTORE 1039 

1038 FOR F=1 TO 6: READ A*: PER* 
(F > =A*: NEXT 

1039 DATA yo? t ú? él ? nosotros? voso 
t ros? el 1 os 

1040 LOCATE O? 5: PRINT" 1- Indica 
t i vo" ? "2— Sub j un t i vo " ? "3- Potenci 
al"? "4- Imperativo" 

1050 LOCATE O? 7: PRINT: INPUT "En 

qué modo quiere conjuqar al verbo 
: " ; M 

1060 ON M GOTO 1070, 1310, 1450? 15 
40 

1070 REM INDICATIVO 

1080 CLS: PRINT "1- Presente",?" 

2- Pretérito imper " 3- Rretér i t 

0 indef."?"4— Futuro imper."? "5- 
Pretér i to perf."?"6— Pretérito pl 
uscuan . " ? "7— Pretérito anterior", 
"8— Futuro perf ." 

1090 LOCATE O? 13: INPUT "En qué 

t iempo verbal lo qu i ere: " ; TIE: CL 

o 

1210 IF TIE>4 THEN GOTO 1250 
1215 RESTORE 1235: IF T=1 AND TI 

E= 1 THEN 1230 

1220 FOR F=1 TO 18* (TIE— 1 ) +6+ <T- 
í> : READ A*: NEXT 

1230 FOR F=1 TO 6: READ A*: PRIN 
T PER* (F) ? RAI Z*+A* : NEXT: GOSUB 
1970 

1235 DATA o? as? a? amos? á i s? an? o? e 
s?e?emos? éis?en?o,es?e? imos?ís?en 
? aba? abas? aba? ábamos? abais? aban ? í 
a ? í as ? í a ? í amos ? xais? xan 

1236 DATA í a? í as? í a? í amos? í a i s? í 
an ? é ? as t e ? ó ? amos? as t e is?aron?í? is 
te? i ó? irnos? isteis? ieron?í? iste? ió 
? irnos? isteis? ieron 

1237 DATA aré ? arás? ará? aremos? ar 
é i s? arán? eré ? erás? erá? eremos? eré i 
s? erán? iré? i rás? irá? iremos? iréis? 

1 rán 

1250 IF TIE=5 THEN RESTORE 1270 


ELSE IF TIE=6 THEN RESTORE 1280 E 
LSE IF TIE=7 THEN RESTORE 1290 EL 
SE RESTORE 1300 

1260 FÜR F=i 1U 6: KLAD A*: PRIN 
T PER* ( F ) T AB (11) A* ; " " ; RAI Z*+T*: N 
EXT: GOSUB 1970 

1270 DATA he ? has? ha? hemos? habé i s 
? han 

1280 DATA había? habías? había? hab 

í amos? habíais?habían 

1290 DATA hube ? hub i s t e ? hubo ? hub i 

mos? hub i s t e i s? hub i er on 

1300 DATA habré? habrás? habrá? hab 

remos? habré i s? habrán 

1310 REM SUBJUNTIVO 

1320 CLS: PRINT "1- Presente"?," 

2- Pretérito imper.", "3- Futuro i 

mper ."? "4- Pretérito perf."?"5- P 

retérito pl uscuan ."? "6— Futuro pe 

rf ." 

1330 LOCATE O, 13: INPUT "En qué 

tiempo verbal lo qu i er e : " ; TIE: CL 

o 

1350 IF TIE>3 THEN 1400 

1355 RESTORE 1380: IF T=1 AND TI 

E=1 THEN 1370 

1360 FOR F= 1 TO 18* (TIE-l ) +6* <T- 
1): READ A*: NEXT 

1370 FOR F=1 TO 6: READ A*: PRIN 
T PER* (F) ? RAI Z*+A*: NEXT: GOSUB 
1970: GOTO 1000 

1380 DATA e ? es? e ? emos? é i s? en? a? a 
s? a? amos? á i s? an ? a? as? a? amos? á i s? a 
n?ara o ase? aras o ases? ara o ase 
?áramos o ásemos?arais o aseis?ar 
an o asen 

1382 DATA i era o i ese? i eras o le 
ses? i era o i ese? ¡éramos o i ésemos 
? ¡erais o ieseis, ¡eran o iesen? ie 
ra o i ese? ¡eras o ¡eses? i era o ie 
se? iéramos o i ésemos? i e ra i s o i es 
e i s? i eran o i esen 

1383 DATA ar e ? ar es ? ar e ? ár emos, ar 
eis?aren? i ere? i eres, «ere? iéremos? 
iereis? ¡eren? iere? «eres? i ere? iére 
mos? iereis? ¡eren 

1400 IF TIE=4 THEN RESTORE 1420 
ELSE IF TIE=5 THEN RESTORE 1430 E 
LSE RESTORE 1440 

1410 FOR F=1 TO 6: READ A*: PRIN 
T PER* (F) TAB (10) A*; " " ; RAI Z*+T*: N 
EXT: GOSUB 1970 

1420 DATA haya? hayas, haya? hayamo 
s? hayá i s? hayan 

1430 DATA hubiera o hub i ese? hub i 
eras o hub i eses? hub i era o hubiese 
? hub i éramos o hub i ésemos? hub i era i 
s o hub i ese i s? hub i eran o hubiesen 
1440 DATA hub i ere ? hub i eres? hub i e 
re ? hub i é remos, hub i ere i s? hub i eren 
1450 REM POTENCIAL 
1460 CLS: PRINT" 1- Simple", "2- C 
ompuesto" 

1470 LOCATE O, 13: PRINT: INPUT "En 
qué tiempo quiere conjugarlo ";TI 
É: CLS 

1480 IF TIE=2 THEN 1515 

1485 RESTORE 1510: IF- T=1 AND TI 

E=1 THEN 1500 

1490 FOR F=1 TO 6*(T-1):READ A*: 
NEXT 

1500 FOR F=1 TO 6: READ A*: PRIN 
T PER* (F) ? RAI Z*+A*: NEXT : GOSUB 
1970 

1510 DATA arí a? ar í as? aria? arí amo 
s , ar í a i s , ar í an , e r í a ? e r í as ? e r í a ? er 
í amos? eríais? erían, iría? i rías? i rí 
a ? i r í amos ? iríais? irían 
1515 RESTORE 1530 

1520 FOR F=1 TO 6: READ A*: PRIN 

T PER* (F) TAB (11) A*; " ";RAIZ*+T*:N 

EX I : GUSUB 1 Y/U: bU I U iOUO 

1530 DATA habría? habrías? habría? 

habríamos, habrí a i s? habrí an 

1540 REM IMPERATIVO 

1550 CLS : RESTORE 1600: IF T=1 TH 

EN 1570 

1560 FOR F=1 TO 5*<T-1):READ A$: 
NEXT 

1570 FOR F=1 TO 5: READ A* 

1580 PRINT RAI Z*+A* TAB (10) PER* ( 
F+l) 

1590 NEXT: GOTO 1970: GOTO 1000 
1600 DATA a? e? emos? ad? en? e ? a? amo 
s? ed? an? e? a? amos, id,an 
1970 LOCATE O, 22: PRINT "Presione 
alguna tecla para continuar" 

1980 IF INKEY*=" " THEN 1980 ELSE 
GOTO 1000 



es presentamos 
aquí una interesan- 
gl te versión de un jue- 
^ go con el que ha- 
brán pasado horas y gasta- 
do más de una ficha en Mar 
del Plata. 

Fue implementada por uno 
de nuestros colaboradores 
y amigo Gustavo Faigen- 
baum, docente del Club de 
usuarios de MSX, instalado 
en el CEDEI. 

Dejemos pues que él mis- 
mo nos explique su progra- 
ma: 

LADRI es una versión sim- 
plificada del ya clásico 
"Break Out". 

Como se ve, el listado es 
corto e íntegramente en BA- 
SIC. 

Si bien esto puede quitar- 
nos un poco de definición y 
velocidad, no debemos to- 




mar al listado de LADRI só- 
lo como un juego, sino co- 
mo una demostración de lo 
mucho que se puede hacer 
en poco tiempo y con algo 
de imaginación, programan- 
do en BASIC-MSX. 
Notemos que para distin- 
guir el choque de la pelota 
contra la raqueta se usa la 


instrucción "ON SPRITE 
GOSUB". En cambio para 
localizar el choque contra 
los límites de la pantalla 
se usa la función "POINT". 


Estructura del 

programa 

10 - 330 : Inicialización de 


variables, sprites e imagen 
de pantalla. 

340 : Movimiento de la pa- 
leta. 

350 - 400 : Movimiento de 
la pelotita. 

41 0 - 490 : Destrucción de 
ladrillos. En la línea 470 se 
contempla la posibilidad de 
terminar con una pared. 


500 - 530 : Subrutina de 
choque de la paleta con la 
pelota. 

540 - 570 : Subrutina de 
pérdida de la pelotita. 
580 - 610 : Subrutinas au- 
xiliares de cálculo de direc- 
ción de la pelota. 
620 - 790 : Finalización del 
juego y cálculo del record. 


10 REM******* LADRI ***+,*:******* 
20 REM**P0R GUSTAVO FAIGENBAUM** 
30 COLOR 11,1,1 
40 N=0 
50 J=5 

60 SCREEN2, 3 

70 RESTORE 

80 P*="":B=0 

90 SPRITE ON 

100 ON SPRITE GOSUB 490 

110 FOR A=0 TO 27 

120 P*=P*+CHR*(255> 

130 NEXT 

140 SPRITE* (O) =P* 

150 P*="" 

160 FOR P=0 TO 7 

170 READ A 

180 P*=P*+CHR*(A) 

190 NEXT 
200 CLS 

210 SPRITE* (2>=P* 

220 DATA O, 0,60 ,60 ,60,60 ,0, 
O 

230 W=N+3 

240 FOR A=20T096STEP 12 

250 FOR P=0 TO 240 STEP 21 

260 LINE (P, A) -STEP (19,10),11-A 

/ 1 1 , BF 

270 NEXT 

280 NEXT 

290 PUTSPR I TEO , (60, 173) , 12 


300 IF STR I G ( O ) < >— 1 THEN 300 
310 BEEP 

320 X=60sZ=3:Y=110sV=l .5= GOSUB 5 
70: GOSUB 590 

330 IF ST I CK ( O ) =3 AND X<212THENX 
=X+8: PUTSPR I TEO, (X, 173) , 12ELSEIFS 
TICK (O) =7 AND X >0THENX=X-8: PUT SP 
RITE O, (X, 173) , 12 
340 IF YC-WTHEN W=-W:V=V* INT(1. 
08+RND ( 1 ) ) : BEEP: GOSUB 590 
350 IF ZC-VTHEN V=ABS ( V) : BEEP: GO 
SUB 570 

360 IF Z+V >232THEN V=ABS ( V) *-l : B 

EEP: GOSUB 570 

370 Y=Y+W:Z=Z+V 

380 PUT SPRITE2, (Z* Y) , 14 

390 I FY > 1 88THÉN530 

400 IFABS (POINT ( Z+C, Y+D) ) =1THEN3 

30 

410 A=POINT(Z+C, Y+D) 

420 PAINT (Z+C, Y+D) ,1,1 
430 BEEP 

440 W=-W: GOSUB 590 
450 B=B+A 

460 IF B=456 THEN N=N+1:SCREEN 1 
: PRINT"Lo felicito .Puntaje hasta 
el momento: " N * 456 , "Pr 

epare^e para nueva serie" :FOR I=* 
1 TO 3000: NEXT: SCREEN 2, 3: GOTO 60 
470 IF A+N>ABS (W) THEN W=SGN(W)*( 
A+N-l ) : V= V*INT(1 .05+RNDQ) ) 


480 GOTO 330 

490 IF Y< 170 THEN W=-ABS (W) : ELSE 
V=— V 

500 BEEP 

510 Z=Z+V: Y=Y+W: PUT SPRITE2, (Z, Y 

), 14: GOSUB 590: GOSUB 570 

520 RETURN 

530 W=N+2 

540 J=J-1 

550 IF J=OTHEN 610 
560 GOTO 290 

570 IF V>0 THEN C=8:ELSE C=0 
580 RETURN 

590 IF W>0 THEN D=8:ELSE D=0 
600 RETURN 
610 SCREEN 1 

620 PRI NT "PUNTAJE FINAL " ; N*456+ 

B 

630 IF N*456+B>ME THEN PRINT"LO 
FELICITO, USTED HA BATIDO EL RECC 
RD „ " : LINE INPUT "¿COMO SE LLAMA? 

" ; ME*: ME=N*456+B 
640 PRI NT 

650 PRI NT "RECORD " ; ME; " POR " ; ME 
* 

660 PRI NT "¿DESEA VOLVER A JUGAR? 
(s/n) " 

670 A*= I NPUT * ( 1 ) 

680 IF A*= " n " OR A*= " N " THEN END 
690 IF A*= " S " OR A*= " s " THEN 40 
700 GOTO 670 






CONCURSO DE 

j 1 

PROGRAMAS 

■ 


auspiciado por TELEMATICA S.A. que proveerá los siguientes Premios: 



Un nprifóripn ( a elecc 'ón entre un monitor, ¡InaRoPO para trabajar en el 

Ull pCIIICIIUU una diskettera y una impresora). Ulld UCud Departamento de Investigación 

y Desarrollo de Telemática S.A. 


S E G U N DO P R E M I O 


Un npriférirn ( a e|ección entre un monitor ' 

Ull JJGIIICIIuU una diskettera y una impresora). 


En caso de que el ganador no pueda utilizar la beca será ofrecida a quien obtenga el segundo premio, y si este 
tampoco pudiera aprovecharla se otorgará a alguno de los participantes del certamen que se hubiera destacado. 

CCDCPI A I Entre los programas recibidos, algunos de ellos podrán ser editados por 
Cdl CUI/AL Prosoft, reconociéndose los derechos de autor. 



lemas: 


TRIipn Premiaremos al programador que logre la mejor versión de este 
1 ÍiUuUe tradicional juego de salón. 

nc IMTpl IRFNP5A L ° s i ue 9° s que nos inspiren podrán ser "El Fs- 

UL Mi I t LIU Lili ÜlftEtanciero" o temas originales que sigan la línea 



tir sobre el límite entre la simulación y la inteligencia de la computadora. 

Obviamente la única forma de lograr esto será siguiendo las reglas propuestas de la Inteligencia 
artificial. Por esto se considerarán para premiar esta categoría, además de las reglas detalladas 
más abajo, la capacidad de auto-aprendizaje del programa, el nivel de inferencia del mismo, la ca- 
pacidad y modo de almacenamiento de su base de datos, y principalmente su analizador sintáctico 
dado que hasta el momento no se ha logrado uno que dé suficiente credibilidad de que estamos 
frente a un ser racional que entiende nuestro idioma y no frente a una máquina a la que debemos 
hablarle con verbos en infinitivo ai mejor estilo Tarzán (sin menospreciar a este último). 


PROFESIONAL O GESTION: 


lema: 


I D D C Dentro de este tema podrán figurar programas de las más diversas 
LIDÍlki aplicaciones. 


BASES: No sólo será indispensable que el programa enviado funcione correctamente sino que además 
debe cumplir con ciertas reglas. 

• Programación estructurada en bloques fácilmente diferenciabas. 

• Fácil seguimiento dei mismo y detalle de éste como parte de su documentación. (Diagrama de 
bloques con ios números de línea que ios identifiquen). 

• Aclaración yetara explicación de ios algoritmos utilizados, deben figurar como parte de ia documentación. 

• Las variables y/o direcciones de memoria utilizados también se deben incluir en esta documentación. 

• Listado, de nemónicos assembier y ia localización en memoria si es que se utiliza este tipo de lenguaje. 

• Calidad y originalidad de gráficos, sonidos y pantallas de menú. 

• E! programa debe ajustarse a alguno de los temas propuestos más arriba. Esto es ELIMINATOR/O. 


Los trabajos deberán enviarse antes del 30 de noviembre próximo (cierre del certámen) a: Paraná 720, piso 5 o , 
(1017) Capital Federal. 
















CREATIVIDAD: 5 
PRESENTACION: 2 
A TRACCIO N f ; 7 
GRAFICOS: 8 
SONIDO: 6 

TIPO: ENTRETENIMIENTO 
PRODUCE: Bitgame 


rbitando en torno de algún plane- 
ta, nuestra nave debe defenderse 
de otras naves y seres extraños. 
Esto, además de esquivar lluvias 
tupidas de meteoros gigantescos que in- 
vaden nuestra órbita. 


BATTLE CROSS 



El juego es simple y tradicional. No se ha in- 
novado nada, pero en conjunto resulta muy 
atractivo por sus gráficos y la acción que 
desarrolla y que nos obliga a mantener. 


Para los amaptes de los juegos de acción 
galáctica tradicional, tipo PARSEC, este 
programa no los defraudará. Bienvenidos al 
hostil universo. 


TOEMI 



CREATIVIDAD: 6 
PRESENTACION: 4 
ATRACCION: 9 
GRAFICOS: 8 
SONIDO: 7 

TIPO: ENTRETENIMIENTO 

PROD UCET Bitgame 

ste juego puede enrolarse dentro 
de los de acción espacial, en los 
que el desarrollo transcurre desde 
la cabina de una nave intergalác- 
tica. 

Un poderoso láser es la única arma dispo- 
nible para defendernos de los ataques de los 
objetos voladores no identificados. 

Cuatro grandes reactores son los encarga- 
dos de propulsar y guiar a nuestro artefacto 
por el espacio infinito. 

Estos son comandados desde las hermosas 
teclas azules de cursor. 

El desarrollo, si bien no es original del autor, 
no lo desmerece en absoluto pues la idea 


base ha sido complementada por buenas y 
originales rutinas. 

Entre ellas, una que nos felicita luego de ha- 
ber cumplido parte de la misión, muestra 
una excelente escena en la que un trasbor- 
dador espacial abre su bodega para proveer- 


nos del indispensable combustible, y en 
nuestro visor aparece acompañándolo len- 
tamente un enorme planeta. 

En resumen, es un buen juego, que nos 
transportará efectivamente hacia la des- 
preocupación, por lo menos momentánea. 





AJEDREZ 


CREATIVIDAD: - 
PRESENTACION: 5 
ATRACCION: 10 
GRAFICOS: 8 

SONIDO: 7 

TIPO : ENTRETENIMIENTO 
PRODUCE: Bitgame 



ste es un gran desarrollo, hecho 
sin duda con sendos conocimien- 
1 tos de las reglas de este juego o 
deporte (para no entrar en ese 
dilema), que realmente atrapará a los aman- 
tes de este eterno pasatiempo: El Ludo. 
—¿Qué...?, ah sí, El Ajedrez. Perdón. 

En sí, el programa no defraudará a los exi- 
gentes y expertos jugadores ni en calidad 
gráfica, ni en la oposición que la máquina 
ofrece en sus más altos niveles. 

Así, su adquisición es una buena idea, para 
desperdiciar el tiempo inteligentemente. 




INGLES I 

CREATIVIDAD: 8 
PRESENTACION: 7 

ATRA CCIONj_8 

GRAFICOS: 7 

SONIDO: 5 
TIPO EDUCATIVO 
PRODUCE: Bitgame 

i alguna vez tuvimos la intención 
de buscar un juego que permitiera 
practicar las estructuras básicas 
del idioma inglés y al mismo tiem- 
po entretenernos, este soft se aproxima 
bastante a su necesidad. 

Los dos lados del cassette tienen preguntas 
para practicar. El lado A comienza con 
palabras básicas que a medida que avanza- 
mos en el juego, se complican pues las 
respuestas deberán ser frases como 
HASN'T GOT por ejemplo. 

Las preguntas que deberemos responder 
son sobre las distintas pantallas que se 
nos presenta. 

Los gráficos tienen una combinación atrac- 
tiva de colores que producen pantallas lla- 
mativas. Lamentablemente este programa 


no cuenta con efectos sonoros sobresa- 
lientes. 

Seremos evaluados con treinta y ocho pre- 
guntas. Al finalizar el entretenimiento, ob- 
tendremos el resultado del interrogatorio. 
El lado B del cassette es un poco más entre- 
tenido, aunque también más difícil. Nos en- 
contramos en el interior de un castillo del 
que debemos tratar de escapar. Pero como 
primera dificultad, hay un extraterrestre que 
nos persigue y está identificado con el color 


verde. Este extraterrestre nos perseguirá 
constantemente. Y si consigue atraparnos 
tres veces, nos matará. 

Pero lo más interesante de ese software es 
que nos hará adivinanzas que deberemos 
responder si queremos escapar. 

Contamos con algunos recursos que nos 
ayudarán a huir del extraterrestre como, por 
ejemplo, transformarnos en invisibles. 

Al comienzo del programa tenemos las ex- 
plicaciones del manejo del juego. 






u 


mica ae uorus 



Este pequeño libro de 702 páginas ape- 
nas, es como la gran biblia del MSX. 
Tiene casi todo lo que tienen los de- 
más libros de la misma clase, es decir 
que es una especie de compendio de 
todos los demás. 

Por otra parte, no escapa a la temática 
que se usa en ellos: enseña clara y efi- 
cientemente cada uno de los puntos 
destacables y originales que el sistema 
MSX posee. 

Según la misma contratapa, el libro 
cubre todo lo que se necesita saber so- 
bre MSX, desde el BASIC al Sistema- 
Operativo, de forma exhaustiva pero 
con un estilo conciso, estando eficaz- 
mente estructurado para que se pueda 
utilizar de forma práctica como manual, 
de consulta y referencia constantes o 
para aprender o programar y manejar 
con destreza cualquier micro MSX. 

A pesar de esto, éste no es un manual 
para aprender a programar en BASIC. 
Posibilita además conocer el funcio- 
namiento y manejo de los chips que 
habitan dentro de la carcasa de la má- 
quina. 

Al final del libro se describe detallada- 
mente el sistema operativo MSX: ins- 
trucciones RST, puntos de entrada y 
salida, BIOS y vectores. 

En fin, es un libro muy completo y re- 
comendable como obra de consulta 
permanente. 


Para comunicarse con noso- 
tros deben escribimos a Re- 
vista para usuarios de MSX, 
Paraná 720, 5to. Piso, (1017) 


Cap. Federal. 

próximas entregas veremos 
este tema detalladamente, 
pues es amplio y requiere de 
ciertas consideraciones pre- 
vias. 

De todos modos aquí van al- 
gunas de las posiciones de 
memoria que corresponden 
al comienzo de las rutinas 
que se encargan de controlar 
este periférico. 

Así que a cada una de ellas 
deberemos llamarlas con un 
CALL. 

Dirección: El 

Función: Hace que el motor 
comience a f uacionar y lee el 
encabezamiento del progra- 
ma. 

Hay que tener en cuenta que 
una llamada a esta rutina, 
modificará todos los regis- 
tros. 


Esta rutina devolverá un 1 en 
el bit de acarreo si se pulsa 
CTRL- STOP. 

Dirección: E4 

Función: Hace que los datos 
entren desde la cinta. Este 
dato quedará en el acumula- 
dor. 

También modifica los regis- 
tros. 

Dirección: E7 

Función: Detiene la lectura 
de datos desde el cassette. 

Dirección: EA 

Función: Graba el encabeza- 
miento de un programa. Si el 
encabezamiento es corto, el 
acumulador debe contener 
un 0 antes de llamarlo. Otro 
valor significará que el enca- 
bezamiento es largo. 

Dirección: ED 


Función: Graba el dato con- 
tenido en el acumulador en 
cinta. 

Dirección: FO 

Detiene el flujo de datos des- 
de la máquina hacia el gra- 
bador. 

Dirección: F3 

Función: Acciona el motor 
del grabador. 

Peek 

He leído en algunos progra- 
mas que han publicado, el uso 
de la instrucción PEEK y co- 
mo no tengo aún conocimien- 
tos sólidos de programación, 
que espero algún día tener, 
me gustaría que me expliquen 
para qué se utiliza en los 
programas. 

Jorge Urdanivia. Capital 

Load MSX 

Esta instrucción se utiliza 
cuando queremos leer algu- 
na posición de memoria de 
nuestra computadora. La 
forma de esta instrucción 
(como lo indica el manual) 
es: PEEK (n) y leer el valor 
existente en la posición n. 


MSX Guía del programador 


y manual de referencia 


Load MSX 
direcciones 

Ante todo quiero felicitarlos 
por su publicación, me parece 
fantástica. Actualmente es- 
toy comenzando a aprender el 
Assemb/er del Z80 y quisiera 
acceder desde este lenguaje 
al manejo de información de 
cassette. 

Alicia Colombo. La Plata. 

Load MSX 

Agradecemos las felicitacio- 
nes y esperamos seguir sa- 
tisfaciendo las necesidades 
de nuestros lectores. 

Con respecto al pedido, en 


Autor: 


T. Sato 


P. Mapstone 


I. Muriel 


Editorial: 


Anaya 


Multimedia 


Computación, 
una oportunidad para que 
todos enseñen y aprendan. 


Un lugar para 

desarrollar el pensamiento. 

descubrir una vocación. 

manejar lenguajes de 
computación. 

comprender los múltiples usos 
de un computador. 

capacitar y perfeccionar al 
docente. 

incorporar los avances 
tecnológicos. 

que el profesional domine el 
uso de nuevas herramientas. 

que los padres se reencuentren 
con sus hijos. 

“No se trata solamente de 
adquirir en forma puntual 
conocimientos definitivos, 
sino prepararse a elaborar a lo 
largo de toda la vida, un saber 
en constante evolución y de 
aprender a ser.” 

UNESCO 


Actividades '86 

Para Niños, Adolescentes, 
Adultos, Docentes, 
Profesionales y 
Establecimientos educativos. 

INTRODUCCION A 

MICROCOMPUTADORES 

DIAGRAMACION 

ESTRUCTURADA 

LOCO 

BASIC 

COLOR - SPRITE - SONIDO 

COBOL 

PASCAL 

ASSEMBLER 

MS - DOS Y MSX - DOS 

DBASE II -MULTIPLAN 

PROCESADOR DE LA PALABRA 
INSTALACION DE 
LABORATORIOS 
en Establecimientos educativos 
con formación de multiplicadores 
y apoyo a la comunidad. 


Cómo? 


• Taller en grupos de 12 a 15 
personas. 

• Clases de 2 horas diarias. 

• 2 ó 3 alumnos por equipo. 

• Equipos disponibles para 
prácticas adicionales en horarios 
libres. 

• Becas rentadas en el 
Departamento de investigación 
y desarrollo de Talent MSX. 

• Becas rentadas para 
docentes en Laboratorios 

de Establecimientos Educativos. 

Informes, Inscripción y Cursos 

Lunes a Viernes de 8 a 22 hs. 
Sábados de 8 a 13 hs. 

CENTRAL: 

Cabildo 2027 - 1er. Piso y 
Juramento 

FILIALES: 

Centro: Esmeralda 320 - 5 o P. 
Lanús: Caaguazú 2186 - L. Este 


Talent/® 

Inteligencia en crecimiento. 


o 

QJ 

O 

15 

TD 


Cedei 

Centro para 
el desarrollo de 
la inteligencia. 

Descubramos y construyamos juntos los ^ 

caminos que nos permitirán el uso inteligente o 

de los productos de la creatividad humana. 2. 

n 

o/ 

ru 

t r 






DISTRIBUIDORES AUTORIZADOS: CAPITAL FEDERAL: AMATRIX, Bolívar 173 - ARGECINT. Av. de Mayo 1402 - BAIDAT COMPUTACION, Juramento 2349 - COMPUPRANDO. Av. de 
Mayo 965 - COMPUSHOP, Córdoba 1464 - COMPUTIQUE, Córdoba 1111, E. P. - COMPUTRONIC, Viamonte 2096 - CP67 CLUB. Florida 683, L. 18 - DALTON COMPUTACION. 
Cabildo 2283 - ELAB. Cabildo 730 - MICROSTAR. Callao 462 - Q.S.P.. Bartolomé Mitre 864 - SERVICIOS EN INFORMATICA. Paraná 164 - DISTRIBUIDORA CONCALES. Tucumán 
1458 - MICROMATICA. Av Pueyrredón 1135 - ACASSUSO: MICROSTAR ACASSUSO, Eduardo Costa 892 - AVELLANEDA: ARGOS. Av. Mitre 1755 - BOULOGNE: COMPUTIQUE 
CARREFOUR Bernardo de Irigoyen 2647 - CASTELAR: HOT BIT COMPUTACION, Carlos Casares 997 - LANUS: COMPUTACION LANUS, Caaguazú 2186 • LOMAS DE ZAMORA: 
ARGESIS COMPUTACION Av Meeks 269 - MARTINEZ: VIDEO BYTE. Hipólito Yrigoyen 32 - RAMOS MEJIA: MANIAC COMPUTACION. Rivadavia 13734 - SAN ISIDRO: FERNANDO 
CORATELLA Cosme Beccar 249 - VICENTE LOPEZ: SERVICIOS EN INFORMATICA, Av del Libertador 882 - BAHIA BLANCA: SERCOM. Donado 327 - SUMASUR, Alsma 236 • LA 
PLATA: CADÉMA, Calle 7 N° 1240 - CERO-UNO INFORMATICA, Calle 48 N° 529 - MAR DEL PLATA: FAST, Catamarca 1 755 - NECOCHEA: CAFAL, Calle 57 N° 2920 - SERCOM. Calle 57 
N° 2216 - TRENQUE LAUQUEN: COMPUQUEN, Villegas 231 - CORDOBA: AUTODATA, Pasaje Santa Catalina 27 -TECSIEM. Santa Rosa 715 - ROSARIO: 2001 COMPUTACION. Santa 
Fe 1468 - MINICOMP Maipú 862 - SISOR, Urquiza 1062 - SANTA FE: ARGECINT, P. San Martin 2433. L. 36 - SISOR, Rivadavia 1062 - INFORMATICA, San Gerónimo 2721/25 - 
VILLA MARIA: JUAN CARLOS TRENTO. 9 de Julio 80 - MENDOZA: INTERFACE. Sarmiento 98 - BIT & BYTE. 9 de Julio 1030 - COMODORO RIVADAVIA: COMPUSER, 25 de Mayo 827 - 
GENERAL ROCA: DISTRIBUIDORA VECCHI, 25 de Mayo 762 - LA PAMPA: MARINELLI. Pellegrini 155 - NEUQUEN: MEGA, Perito Moreno 383 - EDISA, Roca esq. Fotheringham - RIO 
GRANDE: INFORMATICA M & B, Perito Moreno 290 - SAN CARLOS DE BARILOCHE: L. ROBLEDO & ASOCIADOS. Eltein 13, Piso 1° - TRELEW: SISTENOVA, Sarmiento 456 - 
PARANA: MARIO GARCIA. Laprida y Santa Fe - POSADAS: CENTRO DE COMPUTOS ELDORADO. Colón 2429 - RESISTENCIA: FRANCO SANTI. Carlos Pellegrini 761 - SAN 
SALVADOR DE JUJUY- DELTA COMPUTACION, Salta 1108 - SALTA: DELTA COMPUTACION, Caseros 873 - SAN MIGUEL DE TUCUMAN: LEXICON. 9 de Julio 85 - ELECTRONICA 


A la computadora personal 

Talent 

nada le es imposible 


Porque gracias a la norma internacional MSX, la 
TALENT MSX trasciende sus propios límites. 

Hasta ahora, cuando usted compraba una 
computadora personal de cualquier marca, quedaba 
automáticamente desconectado del resto del mundo 
de la computación. Porque los distintos equipos y 
sistemas no eran compatibles entre sí. 

Hasta que dos grandes empresas de informática, 
la Microsoft Corp. de EE.Ull. y la ASCII del Japón se 
pusieron de acuerdo para crear una norma standard: 
la MSX. Que se expandió también rápidamente en 
Europa. Y que hoy TALENT presenta por primera vez 
en la Argentina. 

Mientras que la mayoría de las computadoras de su tipo 
que se ofrecen en el mercado nacional, han sido 
discontinuadas por obsoletas en sus lugares de origen, 
TALENT MSX tiene casi ilimitadas posibilidades 
de desarrollo. Porque la norma MSX es en todo el 
mundo inteligencia en crecimiento. 

La TALENT MSX pone a su disposición un mundo de 
software para elegir. Y con la incorporación de todos 
sus periféricos llega a ser una auténtica computadora 
profesional. 


MSX es marca registrada de MICROSOFT CORPORATION 


UTIL 

Su poderoso sistema operativo MSX 
permite el acceso a todo tipo de 
procesamiento de datos: 

• Planillas de calculo. 

• Procesadores de palabra. 

• Gráficos de negocios. 

• Bases de datos (d Base II. etc.) 

• Contabilidad general, sueldos, y 
jornales, costos, etc . desarrollados 
bajo CP/M en Basic. Coboi . Pascal o C 

Con la posibilidad de conexión a linea 
telefónica permite la transferencia y 
consulta de datos entre computadoras 
personales, profesionales o bancos de 
datos. 

La grabación de archivos es en formato 
MS-DOS. haciéndola compatible con las 
computadoras profesionales. 

DIDACTICA 

Dispone de tres lenguajes para ¡a 
enseñanza de computación LOGO como 
lenguaje de inducción para los mas 
chicos. Lenguaje de Programación en 
castellano, para todos los que quieran 
aprender a programar sin conocimientos 
previos V Basic MSX como lenguaje 


profesional Mas una amplia variedad de 
periféricos como el Mouse. Lápiz Optico. 
Tableta gratica. Track-ball. etc. 

DIVERTIDA 

La mas genial para Video-Juegos. Por la 
amplísima biblioteca de programas 
-todos nuevos- de la norma MSX en el 
mundo. Y ademas, el Basic MSX permite 
al usuario generar sus propios juegos 
con un manejo tan simple, como solo 
TALENT MSX puede ofrecer 

CARACTERISTICAS TECNICAS 

• Memoria principal 64 KB ampliadle 
hasta 576 KB. . 

• Memoria de video: 16 KB RAM. 

• ROM incorporada de 32 KB 
con el MSX-Basic de Microsoft. 

• Gráficos completos, hasta 32 sprites 
y 16 colores simultáneos 

• Generador de sonido de 3 voces 
y 8 octavas 

• Conexión para cualquier grabador. 

• Interfaz para salida impresora paralela. 

• Conectores para cartuchos 
y expansiones 

• Fuente para 220 V 

y modulador PAL-N incorporado